C# 如何使用CodeDOM初始化对象?

C# 如何使用CodeDOM初始化对象?,c#,codedom,C#,Codedom,我需要初始化我的对象,如下所示: var obj = new EduBranch { Id = model.Id, WorklevelId = model.WorklevelId, EdulevelId = model.EdulevelId, Title = model.Title, StartEduYearId = model.StartEduYearId, EndEduYearId = model.EndEduYearId, }; 但在Cod

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

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[]{});  
这是用括号来初始化,而不是用括号。
有没有一种代码化的方法?(我已经使用stringBuilder编写了我的代码,但我正在寻找一种CodeDOM方法)谢谢

CodeDOM目前不支持(或集合初始值设定项)

这些年来,由于其他技术(例如)的原因,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生成上述代码,并获得相同的

T4 is代码生成。是的,它在小型、快速项目中占有一席之地,但对于大型web服务或企业应用程序来说,CodeDOM仍然是无可替代的。我唯一的抱怨就是缺少对泛型类型的支持。除此之外,当你有真正的工作要做时,没有什么可以替代的。