Я использую 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, как в примере ниже.Метод GetTypeInfo в SemaniticModel возвращает «ErrorType?».
using (var session = SessionHelper.SessionFactory.OpenSession())
{
session.Save(entityObject);
}
Есть ли еще способ сделать это?Я проверил код в Visual Studio синтаксиса Visual Studio и там доступна информация о типах, что позволяет мне думать, что это возможно.