Я нашел множество решений здесь, в SO и elsewere, которые касаются глубокого клонирования объекта посредством сериализации/десериализации (в память и обратно).Клонирование объектов без сериализации
Это требует, чтобы классы, которые нужно клонировать, помечены [Serializable]
. У меня есть мои классы (и большинство из них), отмеченные [DataContract]
, потому что я использую DataContractSerializer
для сериализации в XML.
Я ввел только атрибут [Serializable]
из-за необходимости глубокого клонирования некоторых из этих экземпляров класса. Однако теперь что-то случилось с сериализацией/десериализацией через DCS, потому что оно больше не работает - ошибки в ожидании использования другого элемента XML при десериализации. Если я удалю [Serializable]
, ошибки исчезнут.
Какие у меня варианты? Я просто хочу глубоко клонировать мои объекты как можно проще.
Вы можете использовать рефлексию, но это может также привести к незначительным служебным накладным расходам. – IDWMaster
Зачем вам [Serializable] здесь вообще? Вы можете использовать DCS для глубокого клонирования ...? Просто сериализуйте его в MemoryStream через DCS ...? –
да я просто что-то придумал, я отправлю его – mare