Jos*_*rty 9 c# properties roslyn
我正在尝试构建C#方法和属性的调用图.这实质上意味着我搜索项目MethodDeclarationSyntax和PropertyDeclarationSyntax节点.然后,我通过以下方式查找方法调用,在这些节点之间建立连接:
SyntaxNode node = ...; //Some syntax node
var methodInvocations = node.DescendantNodesAndSelf().OfType<InvocationExpressionSyntax>();
//Process these method invocations
Run Code Online (Sandbox Code Playgroud)
是否有类似的方法或推荐的方法来查找所有属性"调用"?我相信C#编译器会在编译时将属性分解为Getter和Setter函数.
使用Roslyn检测属性使用的最佳方法是什么?
Roslyn模型遵循源,而不是IL,因此不会表示对get和set方法的单独调用.
为此,您需要找到所有MemberAccessExpression和IdentifierNameSyntax节点并调用GetSymbolInfo以查看它们是否引用该属性.
或者,您应该考虑提升级别以使用工作区模型并调用FindReferencesAPI.
| 归档时间: |
|
| 查看次数: |
1071 次 |
| 最近记录: |