使用 Roslyn 获取方法的实现

Get method's implementation with Roslyn

例如,如果我声明一个接口 class,其实际 class 类型将仅在运行时确定,并且在我右键单击方法调用并单击 [=14= 时使用 VisualStudio ] 我可以从 classes 中找到 3 个继承接口的实现。

如何使用 Roslyn 获取方法的实现语法 nodes/symbols?

看看code that implements Go To ImplementationSymbolFinder 类型上有几个 public API 可以为您提供 overrides/implementations/derived 类型,每个 API 都会返回符号。该功能中的大部分代码只是确定调用哪个方法是正确的,还有一些特定于该功能的额外过滤。例如,如果您有一个具有抽象成员的派生类型,核心函数将 return 该方法,但就功能而言,它不是有意义的实现。

您正在寻找 SymbolFinder.FindImplementationsAsync