gpt4 book ai didi

c# - Roslyn - 查明被调用的方法是否调用了方法

转载 作者:行者123 更新时间:2023-11-30 23:14:10 25 4
gpt4 key购买 nike

我正在努力学习如何使用 Roslyn,但我一直遇到障碍,需要花很多心思才能弄清楚如何绕过。目前,专注于试验以了解可能性。

void Method1(){}
void Method2()
{
Method1();
}
void Method3()
{
Method2();
}

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

我的问题是,如果我只有 Method2 的 IMethodSymbol,有什么办法可以查明 Method2 是否调用了 Method1?

感谢您的帮助

最佳答案

如果我没理解错的话,您知道如何从 Method3MethodDeclarationSyntaxMethod2IMethodSymbolMethodDeclarationSyntaxMethod2Method1,但是你不知道如何从 IMethodSymbol 获取 Method2MethodDeclarationSyntaxMethod2

为此,您可以使用 DeclaringSyntaxReferences :

var method2Syntax = symbol.DeclaringSyntaxReferences.Single().GetSyntax();

关于c# - Roslyn - 查明被调用的方法是否调用了方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43291957/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com