Jaki jest najlepszy sposób na głębokie klonowanie połączonego zestawu obiektów? Przykład:Jak głęboko klonować połączone obiekty w języku C#?
class A {
B theB; // optional
// ...
}
class B {
A theA; // optional
// ...
}
class Container {
A[] a;
B[] b;
}
Oczywistym wyjściem jest chodzenie po przedmiotach i głębokie klonowanie wszystkiego, kiedy do niego dojdę. Stwarza to jednak problem - jeśli sklonuję plik A
, który zawiera B
, i że B
jest również w Container
, to zostanie on sklonowany dwa razy po sklonowaniu Container
.
Następnym logicznym krokiem jest stworzenie Dictionary
i wyszukanie każdego obiektu przed jego sklonowaniem. Wygląda jednak na to, że może to być powolne i bezwstydne rozwiązanie.
Jakieś myśli?
Oto jak to zrobić: http://valueinjecter.codeplex.com/wikipage?title=Deep%20Cloning&referringTitle=Home – Omu