您可以使用Roslyn从语义符号转换回语法树节点吗?

Jay*_*Jay 5 .net roslyn

如果我有一个语义符号,可以说一个参数进入一个方法,我可以回到这个符号的语法节点吗?

在下面的代码中假设我在语法树中有一个"param"标识符的句柄param = "TEST",我交换到语义模型来确定param的OriginalDefinition,它将我带到string param方法声明中.我现在想要交换回语法树并转到原始定义节点.

我能够用我认为的黑客做到这一点 var token = tree.Root.FindToken(origNode.Locations[0].SourceSpan.Start).Parent;

有一个更好的方法吗?也许类似于GetSemanticInfo()语法树的东西?

private void DoSomething(string param)
{
  param = "TEST";
}
Run Code Online (Sandbox Code Playgroud)

Kev*_*lch 2

当前的 CTP 中没有任何更好的东西,但这是我们听到的反馈,并且我们有计划在未来解决它。