使用Roslyn创建方法调用分析器

时间:2017-06-29 15:24:50

标签: c# parsing roslyn roslyn-code-analysis

我需要解析.cs文件以查找特定方法。 例如,一旦调用了名为“X”的方法,分析器就应该检测它。

如何检测此特定节点是一种方法?

提前致谢!

1 个答案:

答案 0 :(得分:1)

如果您有语法节点和语义模型,可以试试这个:

// node – is your current syntax node
// semanticalModel – is your semantical model
ISymbol symbol = semanticModel.GetSymbolInfo(node).Symbol ?? semanticModel.GetDeclaredSymbol(node);
if(symbol.Kind == SymbolKind.Method)
{
    // methodName – is a method's name that you are looking
    if((symbol as IMethodSymbol).Name == methodName)
    {
        // you find your method
    }
}

此外,您可以确定当前语法节点是您的方法而不使用语义模型,但它比上面的方式更难