Я пытаюсь построить график вызовов методов и свойств C#. Это по сути означает, что я ищу проект для узлов MethodDeclarationSyntax
и PropertyDeclarationSyntax
. Я тогда строить связи между этими узлами с помощью поиска вызовов методов с помощью:Найти свойство «invocations» с Roslyn
SyntaxNode node = ...; //Some syntax node
var methodInvocations = node.DescendantNodesAndSelf().OfType<InvocationExpressionSyntax>();
//Process these method invocations
Есть ли подобный метод или рекомендуемый способ найти все имущество «вызовы», а? Я считаю, что компилятор C# разбивает свойства на функции Getter и Setter при компиляции.
Каков наилучший способ определения использования свойств с помощью Roslyn?
Что-то изменилось? Я вижу некоторые общедоступные API-интерфейсы, касающиеся не-исходного кода (свойства getters/seters): http://source.roslyn.codeplex.com/#Microsoft.CodeAnalysis/Symbols/IMethodSymbol.cs,1630ca4680652d53, ссылки – JoshVarty
Нет, мы всегда были такие, потому что иногда вам все равно нужно их найти. Например, если у вас есть свойство X, вам нужно знать, что имена get_X и set_X теперь недействительны. Это не тот случай, когда мы * только * представляем вещи, которые появляются в источнике (мы также представляем неявные преобразования), но в целом философия следующего источника все еще применяется. –