有没有办法生成C#自动属性,Codedom 或可能是我可以使用的另一组libreries?
答案 0 :(得分:5)
不,不是:C# CodeDom Automatic Property
查看this article以获得一些有用的示例
答案 1 :(得分:3)
您可以为此目的使用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);
答案 2 :(得分:2)
CodeDom应该是某种AST,可以转换为多种语言(通常是C#和VB.NET)。因此,您在CodeDom中找不到特定语言的语法糖。
答案 3 :(得分:1)
实际上关于它易于使用CodeSnippetStatement的评论是误导性的,因为CodeTypeDeclaration没有可以添加这些片段的语句集合。
答案 4 :(得分:-1)
你可以这样做:根据How to: Create a Class Using 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);