如何获取 IMethodSymbol 的语句?

How to get statements for IMethodSymbol?

我正在为 .Net 开发代码修复提供程序。

我想检查方法内部结构,例如来自 IMethodSymbol.

的方法语句

例如,我有以下输入代码:

public void DoSomething(string input)
{
    if(input == null)
        throw new InvalidOperationException("!!!!");
}

在代码修复方面,我有 IMethodSymbol 接口,无法获取方法语句、内部节点等。(我希望看到 'if',条件为'if'、异常引发等)。

如何获取?

使用 DeclaringSyntaxReferences 属性 获取定义方法的语法树。

部分方法将有两个节点。

元数据(引用的程序集)中定义的方法将没有。