Roslyn - SyntaxGenerator,生成 AutoProperty

Roslyn - SyntaxGenerator, generate AutoProperty

是否可以通过 Roslyn SyntaxGenerator class(不是 SyntaxFactory)生成自动 属性?

这个:

var myProperty = generator.PropertyDeclaration("MyProperty", generator.TypeExpression(SpecialType.System_String), Accessibility.Public);

将生成:

public string MyProperty {
            get {
            }

            set {
            }
        }

我想要:

public string MyProperty { get; set; }

这是否可以通过某些选项实现?我找到了一些使用 SyntaxFactory 的解决方案,但我想使用 SyntaxGenerator.

我认为这是不可能的。

如果您查看 PropertyDeclaration 的 source,您会注意到,除非 getter/setter 未声明或 属性 是抽象的,否则任何 getAccessorStatements/setAccessorStatements 已通过因为 null 被设置为一个空的 IEnumerable。

访问器语句的生成然后使用 AccessorDeclaration,它将 return 具有主体的访问器(如果访问器被声明为 null)或分号(如果它不是 null,这是仅适用于上述抽象属性。

这个github上似乎还有一个开放的issue