如何使用CodeDOM初始化对象?

时间:2012-10-13 15:53:54

标签: c# codedom

我需要初始化我的对象,如下所示:

var obj = new EduBranch {
    Id = model.Id,
    WorklevelId = model.WorklevelId,
    EdulevelId = model.EdulevelId,
    Title = model.Title,
    StartEduYearId = model.StartEduYearId,
    EndEduYearId = model.EndEduYearId,
};

但在CodeDOM中我只能找到:

var objectCreate1 = new CodeObjectCreateExpression("EduBranch", 
    new CodeExpression[]{});  

这是使用括号来初始化而不是括号。 是否有CodeDOM方法? (我已经使用stringBuilder创建了我的代码,但我正在寻找CodeDOM方法)谢谢

1 个答案:

答案 0 :(得分:5)

CodeDom目前不支持object initializers(或者集合初始值设定项)。

由于其他技术(例如T4 templates),CodeDom多年来已经失宠了。

那说,因为这一行:

var obj = new EduBranch {
    Id = model.Id,
    WorklevelId = model.WorklevelId,
    EdulevelId = model.EdulevelId,
    Title = model.Title,
    StartEduYearId = model.StartEduYearId,
    EndEduYearId = model.EndEduYearId,
};

实际上与:

相同
var obj = new EduBranch();

obj.Id = model.Id;
obj.WorklevelId = model.WorklevelId;
obj.EdulevelId = model.EdulevelId;
obj.Title = model.Title;
obj.StartEduYearId = model.StartEduYearId;
obj.EndEduYearId = model.EndEduYearId;

您可以使用CodeDOM生成上述内容,并获得相同的