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,
};

但在 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/

相关文章:

c# - 如何查看远程网络服务器上的文件是否已更新?

c# - 如何创建一个继承自另一个类并在 CodeDom 中传递类型参数的类?

c# - 在运行时编译代码时添加额外的引用

.net - 使用 CodeDomProvider 编译到内存时,程序集找不到引用的程序集

c# - 如何将 Enumerable.ToList<>() 反序列化为 List<>

c# - Monotouch 检查两个框架的碰撞

C# - 从程序集中获取资源字符串的最快方法

c# - 为什么我的 C# 快速排序实现比 List<T>.Sort 慢得多

c# - 罗斯林-CodeDom : HowTo dynamically compile Code to Universal-Windows-Library

.net - 是否存在 CodeDom Visual Basic .NET 解析器?