深克隆实体而无需序列化



我需要深入克隆实体(将现有实体用作新的实体)。我找到了几种方法,但都包括序列化。由于我们的实体源自MVVM工具包的可观察对象,但我们无法使用这些方法。

最好的方法是什么?

我们是USINNG .NET 4.5和EF5和WPF。

  1. 一种方法是简单地编写可以为您执行克隆的自定义代码。给定一个对象,新的一个实例,然后为每个属性编写一些代码,这些代码将为您提供该属性的深层副本,也许会递归地将您的对象图链接为复杂属性。

  2. 另一个选项是创建一个模型,该模型存储您的重要数据,序列化,然后对该临时序列化模型的数据进行序列化并恢复数据,并将其恢复到一个新的实体对象中。

您可以使用一些库进行深克隆。它比手动实现慢(通过手动实现,您可以通过仅复制所需属性来优化任务),但是通常,此库对于 eneral 复制很有用。

我最喜欢的是DeepCloner,您也可以在Cloneextensions

上看到

最新更新