假设我有一个基类B
和一个派生的EB
类。如何检查每个EB
的构造函数调用哪个基础构造函数?
是否可以通过语义模型实现这一目标?
说明我尝试的代码如下:
var typeSymbol = semanticModel.GetDeclaredSymbol(classDeclarationSyntax);
IMethodSymbol ctor1 = typeSymbol.Constructors[0];
IMethodSymbol ctor2 = typeSymbol.Constructors[1];
我无法跟踪任何公共界面(例如IConstructorSymbol
),因此我可以投放ctor0
和ctor1
。
答案 0 :(得分:0)
语义模型是关于元数据(类及其成员),而不是实际代码中的控制流/实现。
这就是为什么可以为引用的程序集获取语义模型的原因(即使Roslyn不是反编译器)。
IOW,语义模型对应于您在对象浏览器中看到的内容。
您需要使用语法树来查看构造函数的内容。