【问题标题】:Create a method call analyzer with Roslyn使用 Roslyn 创建方法调用分析器
【发布时间】:2017-06-29 15:24:49
【问题描述】:

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

如何检测到这个特定节点是一个方法?

提前致谢!

【问题讨论】:

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


    【解决方案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
        }
    }
    

    另外,你可以在不使用语义模型的情况下确定当前语法节点是你的方法,但它比上面的方法有点困难

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-28
      • 2014-12-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多