我正在尝试使用Roslyn在C#源文件中获取对象创建表达式并添加所有参数的名称(因此从new SomeObject("hello")
添加到new SomeObject(text: "hello")
。
我从SyntaxTree获得了ObjectCreationExpressionSyntax,并为解决方案提供了SemanticModel。我正在尝试将GetSymbol/TypeInfo
用于ObjectCreationExpressionSyntax
的类型,但我似乎无法使用它来获取参数名称。
基本上我想要的是:
具体是Something.Something
。
答案 0 :(得分:8)
向SemanticModel
的{{1}}询问您正在访问/重写的节点。它返回的符号应始终为SymbolInfo
,其属性IMethodSymbol
包含构造函数的所有参数。
出于好奇,我写了Parameters
,完全符合你的要求。它当然没有经过彻底的测试,我会错过(或者只是省略,就像已经命名的参数一样)。
SyntaxRewriter