如何从 IdentifierNameSyntax 获取 BaseType
How get BaseType from IdentifierNameSyntax
我尝试制作分析器,它将从 list.Add(typeof(A));
中的 class A
中检测 BaseType IB
。我有 A
作为 IdentifierNameSyntax
但没有获取基数 IB
的方法。还是存在?你能帮帮我吗?
class Consolidator
{
...
public void Warner()
{
list.Add(typeof(A));
}
...
}
class A : IB
{
...
}
我认为您要查找的是 Type.BaseType
属性。有关详细信息,请查看 MSDN 文档:Type.BaseType
using System;
public class Program
{
public static void Main()
{
var variable = new A();
Console.WriteLine(variable.GetType().BaseType);
}
}
class IB
{
//
}
class A : IB
{
//
}
在 Roslyn 分析器中,您需要使用 SemanticModel 来绑定 typeof 中的内容。调用 SemanticModel.GetSymbolInfo(),这将为您提供一个 INamedTypeSymbol。从那里您可以检查基本类型。
我尝试制作分析器,它将从 list.Add(typeof(A));
中的 class A
中检测 BaseType IB
。我有 A
作为 IdentifierNameSyntax
但没有获取基数 IB
的方法。还是存在?你能帮帮我吗?
class Consolidator
{
...
public void Warner()
{
list.Add(typeof(A));
}
...
}
class A : IB
{
...
}
我认为您要查找的是 Type.BaseType
属性。有关详细信息,请查看 MSDN 文档:Type.BaseType
using System;
public class Program
{
public static void Main()
{
var variable = new A();
Console.WriteLine(variable.GetType().BaseType);
}
}
class IB
{
//
}
class A : IB
{
//
}
在 Roslyn 分析器中,您需要使用 SemanticModel 来绑定 typeof 中的内容。调用 SemanticModel.GetSymbolInfo(),这将为您提供一个 INamedTypeSymbol。从那里您可以检查基本类型。