【问题标题】:C# CodeDom Automatic PropertyC# CodeDom 自动属性
【发布时间】:2010-10-09 16:05:39
【问题描述】:

我有一个使用 CodeDom 创建的属性。如何将其设置为自动属性,而不是针对私有成员添加 CodeFieldReferenceExpressions?

【问题讨论】:

    标签: c# code-generation codedom


    【解决方案1】:

    IIRC,CodeDom 根本无法表达这一点。自动实现的属性只是编译器的糖,但由于它不能(干净地)映射到所有语言,因此它不能完全适合 CodeDom(此外,CodeDom 需要更新)。

    【讨论】:

      【解决方案2】:

      是的,你可以。

      您可以为此目的使用 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 所带来的所有验证基本上都会消失。
      • 我想我喜欢危险的生活。
      猜你喜欢
      • 2011-01-08
      • 1970-01-01
      • 1970-01-01
      • 2011-01-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多