使用Microsoft.CodeAnalysis如何找到类默认实例构造函数的引用(C#4的第10.11.4节)

时间:2018-05-12 22:41:57

标签: .net roslyn roslyn-code-analysis

我使用以下代码从ISymbol检索所有构造函数的列表,我只是注意到没有显式构造函数的类显示零子节点。我的目标是找到实例化类的所有地方(我目前正在使用Microsoft.CodeAnalysis.FindSymbols.SymbolFinder.FindReferencesAsync)。

有没有办法为自动实现的构造函数获取符号?如果没有,还有其他方法可以找到实例化这些类的地方吗?

var ctors = dependant.DeclaringSyntaxReferences.SelectMany(
    r => r.GetSyntax().ChildNodes().Where(
        n => Microsoft.CodeAnalysis.CSharp.CSharpExtensions.Kind(n) == CSSyntaxKind.ConstructorDeclaration
        || Microsoft.CodeAnalysis.VisualBasic.VisualBasicExtensions.Kind(n) == VBSyntaxKind.ConstructorBlock));

1 个答案:

答案 0 :(得分:0)

我刚发现这就是我所期望的。

INamedTypeSymbol.InstanceConstructors