Roslyn:获取格式化的方法签名/声明

时间:2019-01-02 07:26:39

标签: c# roslyn text-formatting method-signature

我有MethodDeclarationSyntaxIMethodSymbol,但是我找不到任何方法来访问格式化的方法名称:

namespace XXX.YYY.ZZZ
{    
    public class MyClass
    {
        public void MyMethod()
        {
        }
    }
}

但是我只能访问的文本格式如下:

public System.Void XXX.YYY.ZZZ.MyClass.MyMethod()

我看到了一些Formatter.Format的例子。但是他们都需要文档/工作区等,我不希望基于解决方案或VS设置获得可调整的格式,而是对方法签名使用简单的通用C#通用格式:

public void MyMethod()

在其他情况下,参数非常相似:

public System.Void XXX.YYY.ZZZ.MyClass.MyMethod(System.Sting myString, System.Int 
 index)

罗斯林有什么办法做到这一点?

1 个答案:

答案 0 :(得分:0)

看来,诀窍在于Roslyn对象在调试模式下显示的内容与它们实际使用ToString()方法提供的内容之间的区别。

有时名称空间是标识符名称输出的一部分,但大多数情况下不是,但是对象表示形式可能会在调试模式下产生误导。

最好的方法是首先通过ToString或其他方式获取字符串,即使变量,字段或常量在调试模式下显示其他内容:)。