C# 메서드 및 속성의 콜 그래프를 작성하려고합니다. 이것은 본질적으로 프로젝트에서 MethodDeclarationSyntax
및 PropertyDeclarationSyntax
노드를 검색한다는 것을 의미합니다.Roslyn을 사용하여 "invocations"속성 찾기
SyntaxNode node = ...; //Some syntax node
var methodInvocations = node.DescendantNodesAndSelf().OfType<InvocationExpressionSyntax>();
//Process these method invocations
비슷한 방법 또는뿐만 아니라 "호출을"모든 재산을 찾기 위해 권장되는 방법이 있나요 : 나는 다음을 통해 메소드 호출을 찾고 이러한 노드 사이의 연결을 구축? 나는 C# 컴파일러가 Getter와 Setter 함수로 속성을 나누어 컴파일 할 수 있다고 생각한다.
Roslyn을 사용하여 속성 사용을 검색하는 가장 좋은 방법은 무엇입니까?
가지가 변경 되었습니까? 비 소스 코드 (속성 getters/setters)를 다루는 공개 API를 볼 수 있습니다. http://source.roslyn.codeplex.com/#Microsoft.CodeAnalysis/Symbols/IMethodSymbol.cs,1630ca4680652d53,references – JoshVarty
아니요. 어쨌든 그것들을 찾을 필요가 있기 때문에 항상 그러한 것들이 있습니다. 예를 들어, X 속성이있는 경우 get_X 및 set_X 이름이 현재 유효하지 않음을 알아야합니다. 우리가 근원에 나타나는 것 (우리는 또한 암시 적 전환을 나타냄)을 나타내는 경우는 아니지만, 일반적으로 소스를 따르는 철학이 여전히 적용됩니다. –