如何在CatchDeclaration中获取实例的符号信息?基本上我想得到符号,以便我可以稍后比较它,看看在该符号上调用了一个方法。
基本上我有这个:catch (Exception ex) {}
我希望SymbolInfo为“ex”。
我得到了捕获声明:
var catchDeclaration = catchClause.DescendantNodes().OfType<CatchDeclarationSyntax>().FirstOrDefault();
但我似乎只能从声明(catchDeclaration.Identifier
)中获取SyntaxToken,该声明不能用于从语义模型中获取符号,因为它只需要一个SyntaxNode。
答案 0 :(得分:3)
致电semanticModel.GetDeclaredSymbol(theCatchDeclarationItself)
。要调用的方法是here并且是一种扩展方法,因此请确保您已在文件顶部使用Microsoft.CodeAnalysis。
通常,当您绑定指向其他位置的变量时,会使用GetSymbolInfo
。 GetDeclaredSymbol
用于“让我在这里定义符号”。