使用Codedom生成C#自动属性

时间:2010-01-23 10:34:55

标签: c# .net code-generation codedom

有没有办法生成C#自动属性,Codedom 可能是我可以使用的另一组libreries?

5 个答案:

答案 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);