如何生成空get& set语句使用CODEDOM在c# [英] How to generate empty get & set statements using CODEDOM in c#

查看:440
本文介绍了如何生成空get& set语句使用CODEDOM在c#的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

目前代码生成的属性像

private int integerProperty  
         { 
            get  
            { 
                return integerField; 
            }
            set  
            { 
                integerField = value; 
            } 
        } 

我想要的属性就像...

I wanted the properties to be simple like...

private int integerProperty  
         { 
            get;              
            set; 
         } 

我与我的代码是

 CodeMemberProperty property1 = new CodeMemberProperty();
        property1.GetStatements.Add(new CodeMethodReturnStatement(new CodeFieldReferenceExpression(new CodeThisReferenceExpression(), "integerField")));
        property1.SetStatements.Add(new CodeAssignStatement(new CodeFieldReferenceExpression(new CodeThisReferenceExpression(), "integerField"),new CodePropertySetValueReferenceExpression()));
        type1.Members.Add(property1);

任何人请帮助。提前感谢。

Anyone please help. Thanks in advance.

推荐答案

正如Botz3000提到的,它是官方不可能的。但是,使用下面的hack你可以实现它:

As Botz3000 mentioned, it's officially not possible. However, with the following hack you can implement it:

var field = new CodeMemberField
  {
      Attributes = MemberAttributes.Public | MemberAttributes.Final,
      Name = "MyProperty",
      Type = new CodeTypeReference(typeof(MyType)),
  };

  field.Name += " { get; set; }";

通过附加 {get;组; } 到字段名称,它将在实际源代码中生成一个属性。

By appending { get; set; } to the field name, it will generate a property in the actual source code.

这篇关于如何生成空get& set语句使用CODEDOM在c#的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆