如何在CompilationUnit中找到方法Symbol的SyntaxNode?

时间:2012-07-11 08:37:34

标签: c# roslyn

我已经在编译单元中添加了一堆节点,现在我想查找与给定符号对应的语法节点:

var compilation = Compilation.Create("HelloWorld")
    .AddSyntaxTrees(SyntaxTree.ParseCompilationUnit("<some namespace>"));

ISymbol symbol =  // some arbitrary symbol, e.g. a method whose syntax node I had
    compilation.GlobalNamespace.GetNamespaceMembers().First();

SyntaxToken token = ???;   // how do I get the token for that symbol?

如何获取该符号的令牌?

注意:

我的目标是能够从MethodSymbol获取每个方法的方法体。

1 个答案:

答案 0 :(得分:20)

使用ISymbol.DeclaringSyntaxReferences