Given a SemanticModel
instance and an ISymbol
assosiated with it, is it possible to get SyntaxNode
of the ISymbol
?
Basicly the opposite of GetDeclaredSymbol
method of SemanticModel
the only way i am aware of is searching the SyntaxTree
root with a predicate, is there a way to do it with less code?
答案 0 :(得分:6)
要从SyntaxNode
获取ISymbol
声明,请使用ISymbol.DeclaringSyntaxReferences
。
请注意,它可以返回多个引用(例如,当您获得部分声明时)或者没有(当它在外部声明时)。
一个小例子:
var syntaxReference = propSymbol.DeclaringSyntaxReferences
.First()
.GetSyntax();
GetSyntax()
将返回SyntaxNode
,因此您仍应将其转换为您感兴趣的确切类型。