.NET 从另一种类型创建匿名类型,但修改某些字段

.NET create anonymous type from another type but modifyng some fields

提问人:renathy 提问时间:6/27/2023 更新时间:6/27/2023 访问量:14

问:

我有一些带有“复杂”对象的类,例如枚举器、列表等。我需要从这个类的实例构造相同的匿名对象。 但是,我需要以我想要的方式转换所有枚举器、布尔斯、列表和其他一些类型。

public class MyClass {
   public string Str1 {get;set;}
   public bool B1 {get;set;}
   public MyEnum EnumVal {get;set;} 
}

所以这个实例

var cl = new MyClass() { Str1 = "Some rand", B1 = true, EnumVal = MyEnum.Value1 } ;

应该转换为一些具有值的匿名类:

{ Str1 = "Some rand", B1 = 1, EnumVal = 1 } 

我考虑过有两个类,比如 和 use ,但将来可以扩展,我不想手动添加属性。取而代之的是,我定义了如何转换某些类型的规则(这些是)。MyClassMySimplifiedClassAutoMapperMyClassMySimplifiedClassbooleans, enumerators, Lists

.NET 序列化 匿名类

评论

0赞 Guru Stron 6/27/2023
你为什么要这样做?
0赞 renathy 6/27/2023
我必须将此类保存为特定的文件格式。读取此文件的客户端已经定义了这些特定规则。所以他们不会将布尔值视为真/假,但他们需要 1 或 0。他们有自己的规则,列表/数组应该是什么样子。已经有现有的方法可以创建这种特定的文件格式,我只需要将我的类传递到那里。如果我通过MyClass实例,它将失败。我需要序列化为另一个符合规则的类或匿名类。
0赞 Guru Stron 6/27/2023
究竟是什么格式?为什么不能从应用规则的原始数据中保存序列化,而不使用中间匿名对象?这些方法是否可扩展?你能举出一些最小的可重复的例子吗?通常,摆弄动态类型创建是最糟糕的选择。

答: 暂无答案