我需要像下面这样初始化我的对象:
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 方法)谢谢
最佳答案
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生成上面的,一样的
关于c# - 如何使用 CodeDOM 初始化对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12874738/