【问题标题】:Roslyn - SyntaxGenerator, generate AutoPropertyRoslyn - SyntaxGenerator,生成 AutoProperty
【发布时间】:2018-01-28 05:59:24
【问题描述】:

是否可以通过 Roslyn SyntaxGenerator 类(不是 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

【问题讨论】:

    标签: c# roslyn


    【解决方案1】:

    我认为这是不可能的。

    如果您查看 PropertyDeclaration 的 source,您会注意到,除非未声明 getter/setter 或属性是抽象的,否则任何作为 null 传递的 getAccessorStatements/setAccessorStatements 都会设置为空 IEnumerable。

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

    github 上似乎也有一个开放的issue

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-06
      • 1970-01-01
      • 2018-04-15
      • 1970-01-01
      • 2018-07-03
      相关资源
      最近更新 更多