替换CodeDOM中对变量的所有引用

时间:2016-08-01 12:34:37

标签: c# codedom

我有一个用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>();
}

但是我知道我不知道如何删除那些引用后备字段的语句,并添加一个引用该属性的语句。

0 个答案:

没有答案