9
我正在嘗試構建C#方法和屬性的調用圖。這基本上意味着我在項目中搜索了MethodDeclarationSyntax
和PropertyDeclarationSyntax
節點。與Roslyn查找屬性「invocations」
SyntaxNode node = ...; //Some syntax node
var methodInvocations = node.DescendantNodesAndSelf().OfType<InvocationExpressionSyntax>();
//Process these method invocations
是否有類似的方法或建議的方式找到所有的財產「調用」以及:然後我通過通過尋找方法調用建立這些節點之間的連接?我相信C#編譯器會在編譯時將屬性分解爲Getter和Setter函數。
什麼是檢測Roslyn屬性使用情況的最佳方法?
有事變了嗎?我看到一些公開的API處理非源代碼(屬性獲取/設置器):http://source.roslyn.codeplex.com/#Microsoft.CodeAnalysis/Symbols/IMethodSymbol.cs,1630ca4680652d53,references – JoshVarty
不,我們已經總是有這些,因爲有時你需要找到那些。例如,如果您有屬性X,則需要知道名稱get_X和set_X現在無效。我們並不僅僅表示出現在源代碼中的東西(我們也表示隱式轉換),但總的來說,後續源代碼的哲學仍然適用。 –