2013年11月20日

[C#]匿名类型的深拷贝

摘要: .net Framework 3.5 + C# 3 发布了包括LinQ等一系列功能,其中包括了匿名类型,而我们在升级到.net4后,发现原来写好的用于POCO的深拷贝方法 static object Clone(object obj) 在匿名对象上不管用了。原因与切入点目前使用的深拷贝实现方式包括:在类型内部编码实现,比如实现ICloneable接口。通过序列化、反序列化方式复制对象。使用反射遍历被拷贝对象的属性,取值并赋值给新的实例。上述方式均不可用,考察原因,我们使用.net Reflector反编译匿名类型 new { Foo = 123, Bar = 456 },可见其代码结构如下:注 阅读全文

posted @ 2013-11-20 20:44 codeyeast 阅读(1995) 评论(0) 推荐(0) 编辑

导航