相关疑难解决方法(0)

深度克隆对象

我想做的事情如下:

MyObject myObj = GetMyObj(); // Create and fill a new object
MyObject newObj = myObj.Clone();
Run Code Online (Sandbox Code Playgroud)

然后更改未在原始对象中反映的新对象.

我不经常需要这个功能,所以当有必要的时候,我已经使用了创建一个新对象然后单独复制每个属性,但它总是让我觉得有更好或更优雅的处理方式情况.

如何克隆或深度复制对象,以便可以修改克隆对象而不会在原始对象中反映任何更改?

.net c# clone

2135
推荐指数
34
解决办法
77万
查看次数

更快的深度克隆

有没有人想要一个允许我通过值.Net对象克隆的框架/类?我只对公共读/写属性(即DataContracts)感兴趣,我不关心引用是否正确解析(即包含两次相同项目实例的集合).

我尝试了序列化技巧DataContractSerializer(序列化为XML并返回),编写基于反射的克隆类(有时更快/有时更慢),并且想知道是否有人编写了一个辅助类,可以通过Emit而不是反射来完成.至于现在发射的IL对我的小脑子来说有点大,但我想这将是最终的解决方案.除非有人知道比DataContractSerializer更快的替代方法.

.net c#

21
推荐指数
4
解决办法
2万
查看次数

标签 统计

.net ×2

c# ×2

clone ×1