Muszę zaimplementować konstruktory C # deep copy z dziedziczeniem. Jakie są wzory do wyboru?

Chcę zaimplementować deepcopy mojej hierarchii klas w C #

public Class ParentObj : ICloneable
{
    protected int   myA;
    public virtual Object Clone ()
        {
             ParentObj newObj = new ParentObj();
             newObj.myA = theObj.MyA;
             return newObj;
        }
}

public Class ChildObj : ParentObj
{
    protected int   myB;
    public override Object Clone ( )
        {
             Parent newObj = this.base.Clone();
             newObj.myB = theObj.MyB;

             return newObj;
        }
}

To nie zadziała, gdy klonowanie dziecka tylko rodzic jest nowością. W moim kodzie niektóre klasy mają duże hierarchie.

Jaki jest zalecany sposób na to? Klonowanie wszystkiego na każdym poziomie bez wywoływania klasy bazowej wydaje się niewłaściwe? Muszą być jakieś fajne rozwiązania tego problemu, czym one są?

Czy mogę podziękować wszystkim za odpowiedzi. Naprawdę interesujące było obejrzenie niektórych podejść. Myślę, że dobrze byłoby, gdyby ktoś podał przykład odpowiedzi na pytanie o kompletność. +1 czeka!

questionAnswers(8)

yourAnswerToTheQuestion