如何走过MethodSymbol的身体?

时间:2012-08-23 15:29:50

标签: c# roslyn

从全局命名空间,可以遍历所有命名空间:

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

从每个命名空间,可以遍历它们的类:

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

类和方法或字段也是如此:

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

然而,我找不到任何方法来迭代方法的陈述。如何继续遍历语义树?

1 个答案:

答案 0 :(得分:3)

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

然后,一旦你有了SyntaxNode(例如MethodDeclarationSyntax),你可以走它,例如使用DescendantNodes()或ChildNodesAndTokens。