如何生成空get& set语句使用CODEDOM在c# [英] How to generate empty get & set statements using CODEDOM in c#
本文介绍了如何生成空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屋!
查看全文