使用Roslyn从ObjectCreationExpressionSyntax获取构造函数声明?

时间:2014-06-12 00:09:23

标签: c# roslyn

我正在尝试使用Roslyn在C#源文件中获取对象创建表达式并添加所有参数的名称(因此从new SomeObject("hello")添加到new SomeObject(text: "hello")

我从SyntaxTree获得了ObjectCreationExpressionSyntax,并为解决方案提供了SemanticModel。我正在尝试将GetSymbol/TypeInfo用于ObjectCreationExpressionSyntax的类型,但我似乎无法使用它来获取参数名称。

基本上我想要的是:

具体是Something.Something

的参数

1 个答案:

答案 0 :(得分:8)

SemanticModel的{​​{1}}询问您正在访问/重写的节点。它返回的符号始终为SymbolInfo,其属性IMethodSymbol包含构造函数的所有参数。

出于好奇,我写了Parameters,完全符合你的要求。它当然没有经过彻底的测试,我会错过(或者只是省略,就像已经命名的参数一样)。

SyntaxRewriter