从CatchDeclaration获取符号

时间:2015-10-22 07:42:04

标签: c# roslyn .net-4.6

如何在CatchDeclaration中获取实例的符号信息?基本上我想得到符号,以便我可以稍后比较它,看看在该符号上调用了一个方法。

基本上我有这个:catch (Exception ex) {}我希望SymbolInfo为“ex”。

我得到了捕获声明:

var catchDeclaration = catchClause.DescendantNodes().OfType<CatchDeclarationSyntax>().FirstOrDefault();

但我似乎只能从声明(catchDeclaration.Identifier)中获取SyntaxToken,该声明不能用于从语义模型中获取符号,因为它只需要一个SyntaxNode。

1 个答案:

答案 0 :(得分:3)

致电semanticModel.GetDeclaredSymbol(theCatchDeclarationItself)。要调用的方法是here并且是一种扩展方法,因此请确保您已在文件顶部使用Microsoft.CodeAnalysis。

通常,当您绑定指向其他位置的变量时,会使用GetSymbolInfoGetDeclaredSymbol用于“让我在这里定义符号”。