c# - 如何遍历MethodSymbol的主体?

标签 c# roslyn

从全局命名空间,可以迭代所有命名空间:

foreach (NamespaceSymbol @namespace in globalNamespace.GetNamespaceMembers())

从每个命名空间,可以迭代它们的类:

foreach (NamedTypeSymbol @class in @namespace.GetTypeMembers())

类和方法或字段也会发生同样的情况:

foreach (Symbol member in @class.GetMembers())

但是,我找不到任何方法来迭代方法的语句。我怎样才能继续遍历语义树?

最佳答案

您需要找到用于声明符号的 SyntaxNode: How to find the SyntaxNode for a method Symbol in a CompilationUnit?

一旦你有了 SyntaxNode(例如 MethodDeclarationSyntax),你就可以遍历它,例如使用 DescendantNodes() 或 ChildNodesAndTokens。

关于c# - 如何遍历MethodSymbol的主体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12095168/

相关文章:

c# - 在 roslyn 中对解决方案应用多项更改

c# - 如何从 TypeDeclarationSyntax 获取 TypeSyntax

C# Transactionscope - 在同一事务中插入/选择,多个连接

c# - MySqlBulkUploader 将 Null 值从 CSV 插入到 MySql c#

c# - 从另一个程序的文本字段中插入和检索文本的方法

roslyn - 如何使用 Roslyn 创建泛型类型引用?

c# - 系统还原状态检查

c# - 如何使用 System.Text.Json 解析带注释的 JSON?

c# - 使用 Roslyn,从字符串文字参数中找到调用方法

c# - 如何使用一个属性来初始化另一个属性?