【发布时间】:2018-06-08 01:11:30
【问题描述】:
我正在使用 Rolsyn 来尝试查找解决方案中的所有位置,在 ISession 对象上调用“保存”方法。这是我目前的解决方案:
if (call.Expression.ToString().Contains("Save"))
{
var innerExpression = call.Expression as MemberAccessExpressionSyntax;
if (innerExpression != null)
{
if (model.GetTypeInfo(innerExpression.Expression).Type.Name.Equals("ISession"))
{
//Do some work.
}
}
}
这适用于正常情况。但是,ISession 对象是在 using 语句中声明的,如下例所示。 SemaniticModel 上的 GetTypeInfo 方法返回一个“ErrorType ?”。
using (var session = SessionHelper.SessionFactory.OpenSession())
{
session.Save(entityObject);
}
有没有办法做到这一点?我检查了 Visual Studio Syntax Visualiser 中的代码,并且那里提供了类型信息,这让我认为这是可能的。
【问题讨论】:
标签: c# .net roslyn roslyn-code-analysis