2

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

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

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

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

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

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

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

4

1 回答 1

3

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

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

于 2012-08-23T22:32:50.630 回答