使用Codedom生成C#自动属性

有没有办法使用Codedom生成C#自动属性, 或者我可以使用其他一组libreries?

CodeDom应该是某种AST ,可以转换为多种语言(通常是C#和VB.NET)。 因此,您在CodeDom中找不到特定语言的语法糖特征。

不,它不是: C#CodeDom自动属性

查看本文以获得一些有用的示例

实际上关于它易于使用CodeSnippetStatement的评论是误导性的,因为CodeTypeDeclaration没有可以添加这些片段的语句集合。

您可以使用CodeSnippetTypeMember类来实现此目的。

例如:

  CodeTypeDeclaration newType = new CodeTypeDeclaration("TestType"); CodeSnippetTypeMember snippet = new CodeSnippetTypeMember(); snippet.Comments.Add(new CodeCommentStatement("this is integer property", true)); snippet.Text="public int IntergerProperty { get; set; }"; newType.Members.Add(snippet); 

您可以这样做:根据如何:使用CodeDOM创建类

  // Declare the ID Property. CodeMemberProperty IDProperty = new CodeMemberProperty(); IDProperty.Attributes = MemberAttributes.Public; IDProperty.Name = "Id"; IDProperty.HasGet = true; IDProperty.HasSet = true; IDProperty.Type = new CodeTypeReference(typeof(System.Int16)); IDProperty.Comments.Add(new CodeCommentStatement( "Id is identity")); targetClass.Members.Add(IDProperty);