2016-01-17 23 views
2

假設有一個SemanticModel實例和ISymbol與它相關聯,是否有可能獲得ISymbolSyntaxNode查找ISymbol的語法節點

Basicly相反的SemanticModel

GetDeclaredSymbol方法我所知道的與斷言搜索SyntaxTree根的唯一途徑,是有辦法用更少的代碼做呢?

回答

6

爲了從ISymbol獲得SyntaxNode聲明,請使用ISymbol.DeclaringSyntaxReferences

請注意,它可以返回多個引用(f.e.當你有部分聲明時)或無(當它是外部聲明時)。

一個小例子:

var syntaxReference = propSymbol.DeclaringSyntaxReferences 
           .First() 
           .GetSyntax(); 

GetSyntax()會返回一個SyntaxNode所以你還是應該將它轉換爲你感興趣的確切類型