我有一个用CodeDOM生成的代码树,它序列化为类似的代码:
MyClass
{
MyClass()
{
this.thePropertyField = 1;
}
private int thePropertyField;
int TheProperty
{
get { return this.thePropertyField; },
set { this.thePropertyField = value; }
}
}
该课程是从XSD构建的。
现在我想删除所有私有后备字段并在getter和setter中调用方法。这工作正常,但是现在 - 随着后备字段被删除 - 我必须用属性thePropertyField
替换私有后备域TheProperty
的所有出现。
我考虑过在constrcutor中循环语句:
var ctor = type.Members.OfType<CodeConstructor>().FirstOrDefault();
if (ctor != null)
{
var statements = ctor.Statements.Cast<CodeStatement>();
}
但是我知道我不知道如何删除那些引用后备字段的语句,并添加一个引用该属性的语句。