【发布时间】:2010-10-15 13:38:46
【问题描述】:
深层克隆一组相互关联的对象的最佳方法是什么?示例:
class A {
B theB; // optional
// ...
}
class B {
A theA; // optional
// ...
}
class Container {
A[] a;
B[] b;
}
显而易见的事情是遍历对象并在我遇到它时深度克隆所有内容。然而,这会产生一个问题——如果我克隆一个包含B 的A,并且B 也在Container 中,那么在我克隆Container 之后,B 将被克隆两次。
下一个合乎逻辑的步骤是创建一个Dictionary 并在我克隆它之前查找每个对象。然而,这似乎是一个缓慢且不优雅的解决方案。
有什么想法吗?
【问题讨论】:
-
我是这样做的:valueinjecter.codeplex.com/…