Учитывая следующий класс:
class A
{
public List<B> ListB;
// etc...
}
где B - это еще один класс, который может наследовать/содержать некоторые другие классы.
Учитывая этот сценарий:
-
A- большой класс и содержит много ссылочных типов - Я не могу пометить
Bкак[Serializable], поскольку у меня нет доступа к исходному кодуB
Следующие методы для глубокого копирования не работают:
- Я не могу использовать
ICloneableилиMemberwiseClone, поскольку классAсодержит много ссылочных типов - Я не могу написать конструктор копирования для
A, так как класс большой и постоянно добавляется к нему и содержит классы (например,B), которые не могут быть глубоко скопированы - Я не могу использовать сериализацию, поскольку я не могу пометить содержащийся класс (например,
B, где нет исходного кода) в качестве[Serializable]
Как я могу использовать класс глубокой копии A?