c# - Roslyn - SyntaxGenerator,生成 AutoProperty

标签 c# roslyn

是否可以通过 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/

相关文章:

c# - ISymbol.DeclaringSyntaxReferences 和 ISymbol.Locations 之间的区别

c# - 使用 Roslyn 将类(class)成员添加到特定位置?

javascript - 如何在 angularjs 中将 SignalR 与多个 Controller 一起使用

c# - 转换为自定义类型、Enumerable.Cast<T> 和 as 关键字

c# - 使用 LINQ 确定序列不包含任何元素

c# - 在 ASP.NET MVC 5 中使用区域的路由属性

c# - 搜索并替换具有多个属性的对象中的值......C#

c# - 代码中使用的属性、方法、lambda 表达式

c# - 从 Roslyn API 中将代码提取为纯字符串

c# - 用 roslyn fix 替换评论(在正确的地方添加琐事)