是否可以通过 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
。
最佳答案
我认为这是不可能的。
如果你看一下 source对于 PropertyDeclaration,您会注意到,除非未声明 getter/setter 或属性是抽象的,否则作为 null 传递的任何 getAccessorStatements/setAccessorStatements 都会设置为空的 IEnumerable。
accessors-statements 的生成然后使用 AccessorDeclaration,它将返回带有主体的访问器(如果访问器被声明为 null)或带有分号(如果它不是 null,这只可能用于抽象属性作为如上所述)。
似乎还有一个开放的issue在 github 上。
关于c# - Roslyn - SyntaxGenerator,生成 AutoProperty,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48483636/