¿Cuál es la mejor forma de deep clonar un conjunto de objetos interconectados? Ejemplo:¿Cómo clonar profundamente los objetos interconectados en C#?
class A {
B theB; // optional
// ...
}
class B {
A theA; // optional
// ...
}
class Container {
A[] a;
B[] b;
}
Lo obvio que hacer es caminar los objetos y clon todo lo profundo que llegue a él. Sin embargo, esto crea un problema: si clono un A
que contiene un B
, y ese B
también está en el Container
, ese B
se clonará dos veces después de clonar el Container
.
El siguiente paso lógico es crear un Dictionary
y buscar cada objeto antes de clonarlo. Sin embargo, parece que podría ser una solución lenta y desvergonzada.
¿Alguna idea?
he aquí cómo lo hago: http://valueinjecter.codeplex.com/wikipage?title=Deep%20Cloning&referringTitle=Home – Omu