【发布时间】:2017-06-29 15:24:49
【问题描述】:
我需要解析 .cs 文件以查找特定方法。 例如,一旦调用了名为“X”的方法,分析器就应该检测到它。
如何检测到这个特定节点是一个方法?
提前致谢!
【问题讨论】:
标签: c# parsing roslyn roslyn-code-analysis
我需要解析 .cs 文件以查找特定方法。 例如,一旦调用了名为“X”的方法,分析器就应该检测到它。
如何检测到这个特定节点是一个方法?
提前致谢!
【问题讨论】:
标签: c# parsing roslyn roslyn-code-analysis
如果你有一个语法节点和语义模型,你可以试试这个:
// 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
}
}
另外,你可以在不使用语义模型的情况下确定当前语法节点是你的方法,但它比上面的方法有点困难
【讨论】: