我正在努力学习如何使用罗斯林,我不断地遇到路障,这些障碍需要花很多心思才能弄清楚如何绕开。目前,专注于实验,了解什么是可能的。
void Method1(){}
void Method2()
{
Method1();
}
void Method3()
{
Method2();
}如果我想检查Method2是否调用了Method1,这很容易,因为我只看它的语法树。据我所知,如果我正在查看Method3,并且希望找到Method2,我应该使用语义树,因为Method2可能位于不同的文件/命名空间/等等中。
我的问题是,如果我只有IMethodSymbol of Method2,有没有办法知道Method2是否调用了Method1?
谢谢你的帮助
发布于 2017-04-08 21:16:25
如果我正确地理解了您,您就知道如何从MethodDeclarationSyntax for Method3到IMethodSymbol for Method2以及从MethodDeclarationSyntax到Method2到Method1,但是您不知道如何从IMethodSymbol Method2到MethodDeclarationSyntax到Method2。
要做到这一点,可以使用DeclaringSyntaxReferences
var method2Syntax = symbol.DeclaringSyntaxReferences.Single().GetSyntax();https://stackoverflow.com/questions/43291957
复制相似问题