Поделиться через


Сериализация в .NET

Сериализация — это процесс преобразования состояния объекта в форму, которую можно сохранить или перенести. Дополнение сериализации — десериализация, которая преобразует поток в объект. Вместе эти процессы позволяют хранить и передавать данные.

.NET включает следующие технологии сериализации:

  • Сериализация JSON сопоставляет объекты .NET с нотацией объектов JavaScript (JSON). JSON — это открытый стандарт, который обычно используется для совместного использования данных в Интернете. Сериализатор JSON сериализует общедоступные свойства по умолчанию и может быть настроен для сериализации частных и внутренних элементов.

  • Сериализация XML и SOAP сериализует только public свойства и поля и не сохраняет точность типов. Это полезно, если вы хотите предоставить или использовать данные без ограничения приложения, использующего данные. Так как XML является открытым стандартом, это привлекательный выбор для совместного использования данных в Интернете. SOAP также является открытым стандартом, что делает его привлекательным выбором.

  • Двоичная сериализация сохраняет точность соответствия типов, что означает, что полное состояние объекта записывается и при десериализации создается точная копия. Этот тип сериализации полезен для сохранения состояния объекта между различными вызовами приложения. Например, можно обмениваться объектом между различными приложениями, сериализуя его в буфер обмена. Объект можно сериализовать в поток, на диск, в память, через сеть и т. д. Удаленное взаимодействие использует сериализацию для передачи объектов "по значению" с одного компьютера или домена приложения в другой.

    Предупреждение

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

Справка

System.Text.Json
Содержит классы, которые можно использовать для сериализации объектов в формате JSON документов или потоков.

System.Runtime.Serialization
Содержит классы, которые можно использовать для сериализации и десериализации объектов.

System.Xml.Serialization
Содержит классы, которые можно использовать для сериализации объектов в xml-документах или потоках формата XML.