Клонирование сериализуемых объектов в C#

Если класс сериализуем, то вы можете создать глубокий клон объекта из этого класса, сериализируя его и десериализируя его. В этом примере используется следующий код для определения общего метода расширения, который клонирует объекты из любого сериализуемого класса.

Код создает BinaryFormatter и использует его для сериализации объекта в поток памяти. Затем он использует форматтер для десериализации потока в новый объект.

Использование этого метода расширения прост. Следующий код показывает, как пример программы использует его для создания глубокого клонирования объекта с именем person1.

Чтобы это сработало, класс должен быть помечен как сериализуемый. Клон также включает только членов класса, которые могут быть сериализованы. Например, если некоторые свойства класса помечены атрибутом XmlIgnore, они не будут сериализованы или десериализованы, поэтому клон не получит значения исходного объекта для этих свойств.

В этом примере сериализуется объект Person. Следующий код показывает объявление класса Person.

Источник: http://csharphelper.com/blog/2016/09/clone-serializable-objects-in-c/

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)

Add a Comment

Ваш e-mail не будет опубликован. Обязательные поля помечены *