从全局命名空间,可以遍历所有命名空间:
foreach (NamespaceSymbol @namespace in globalNamespace.GetNamespaceMembers())
从每个命名空间,可以遍历它们的类:
foreach (NamedTypeSymbol @class in @namespace.GetTypeMembers())
类和方法或字段也是如此:
foreach (Symbol member in @class.GetMembers())
然而,我找不到任何方法来迭代方法的陈述。如何继续遍历语义树?
答案 0 :(得分:3)
您需要找到用于声明符号的SyntaxNode: How to find the SyntaxNode for a method Symbol in a CompilationUnit?
然后,一旦你有了SyntaxNode(例如MethodDeclarationSyntax),你可以走它,例如使用DescendantNodes()或ChildNodesAndTokens。