5

我需要像下面这样初始化我的对象:

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 方法)谢谢

4

1 回答 1

5

CodeDom 目前不支持对象初始化器(或集合初始化器,就此而言)。

由于其他技术(例如T4 模板), 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 生成上述内容,并获得相同的

于 2012-10-13T17:03:57.450 回答