首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Roslyn -查找是否调用方法调用方法

问Roslyn -查找是否调用方法调用方法
EN

Stack Overflow用户
提问于 2017-04-08 08:39:17
回答 1查看 877关注 0票数 3

我正在努力学习如何使用罗斯林,我不断地遇到路障,这些障碍需要花很多心思才能弄清楚如何绕开。目前,专注于实验,了解什么是可能的。

代码语言:javascript
复制
void Method1(){}
void Method2()
{
    Method1();
}
void Method3()
{
    Method2();
}

如果我想检查Method2是否调用了Method1,这很容易,因为我只看它的语法树。据我所知,如果我正在查看Method3,并且希望找到Method2,我应该使用语义树,因为Method2可能位于不同的文件/命名空间/等等中。

我的问题是,如果我只有IMethodSymbol of Method2,有没有办法知道Method2是否调用了Method1?

谢谢你的帮助

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-08 21:16:25

如果我正确地理解了您,您就知道如何从MethodDeclarationSyntax for Method3到IMethodSymbol for Method2以及从MethodDeclarationSyntax到Method2到Method1,但是您不知道如何从IMethodSymbol Method2到MethodDeclarationSyntax到Method2。

要做到这一点,可以使用DeclaringSyntaxReferences

代码语言:javascript
复制
var method2Syntax = symbol.DeclaringSyntaxReferences.Single().GetSyntax();
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43291957

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档