Мне нужно реализовать конструкторы глубокого копирования C # с наследованием. Какие модели можно выбрать?

Я хочу реализовать глубокую копию моей иерархии классов в 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;
        }
}

Это не будет работать, так как при клонировании ребенка только родитель является новичком. В моем коде некоторые классы имеют большие иерархии.

Каков рекомендуемый способ сделать это? Клонирование всего на каждом уровне без вызова базового класса кажется неправильным? Там должны быть некоторые аккуратные решения этой проблемы, что они?

Могу ли я поблагодарить всех за их ответы. Было действительно интересно увидеть некоторые подходы. Я думаю, что было бы хорошо, если бы кто-то привел пример рефлексивного ответа для полноты. +1 в ожидании!

Ответы на вопрос(8)

Ваш ответ на вопрос