Если вы расширяете созданный класс, вы не можете получить описание базового класса.
Если прямое расширение контроллера, вы можете получить описание базового класса.
Рослин Версия 2.9.0.
Я обновил Roslyn Version с 1.1.0 до 2.9.0.
namespace BrnMall.Web.MallAdmin.Controllers
{
class ModelOptionalRequiredPropertiesAnalyzer_R1 : BaseTest
{
[HttpPost]
public void Ac() {
}
}
}
namespace BrnMall.Web.MallAdmin.Controllers
{
class BaseTest : Controller
{
}
}
var methodSymbol = semanticModel.GetDeclaredSymbol(methodDeclarationSyntax) as IMethodSymbol;
if (methodSymbol == null)
continue;
//Cannot get to base class
IEnumerable<ITypeSymbol> iTypes = methodSymbol.ContainingType.GetAllTypes();
public static IEnumerable<ITypeSymbol> GetAllTypes(this ITypeSymbol typeSymbol)
{
while (typeSymbol.BaseType != null)
{
yield return typeSymbol;
typeSymbol = typeSymbol.BaseType;
}
}