【发布时间】:2010-10-25 12:32:14
【问题描述】:
有没有人想要一个允许我按值克隆的框架/类 .Net 对象?我只对公共读/写属性(即 DataContracts)感兴趣,我不在乎引用是否正确解析(即包含两次相同项目实例的集合)。
我尝试通过DataContractSerializer 进行序列化技巧(序列化为 XML 并返回),编写了基于反射的克隆类(有时更快/有时更慢),并且想知道是否有人编写了一个可以通过 Emit 而不是反射。至于现在发出 IL 对我的小脑袋来说有点过分了,但我想这将是最终的解决方案。除非有人知道比 DataContractSerializer 更快的替代方法。
【问题讨论】:
-
您在处理单个对象吗?还是对象树/图?
-
对象树/图——就像我说的,不关心重复引用,但对象是嵌套的,即它们不仅包含平面值属性,还包含其他数据协定。
-
如果您需要尽可能好的性能并且不介意生成额外的代码,请查看CGbR Code Generator
-
force-net 的 DeepCloner 速度极快(2021 年):github.com/force-net/DeepCloner