![]() |
Технология Клиент-Сервер 2001'3 |
||||||
|
Сериализация – это одна из ключевых частей .NET Framework. Инфраструктура remoting, включающая Web Services и SOAP, зависит от сериализации, представляющей собой процесс редуцирования экземпляра объекта в транспортабельный формат, который представляет высокоточное представление объекта. Интересен этот процесс тем, что можно взять сериализованное представление, перенести его в другой контекст, например, на другую машину, и восстановить исходный объект. При эффективной поддержке сериализации можно сохранить объект простым сохранением сериализованного представления на диск. Можно также переносить объекты с помощью простой сериализации в поток байтов, хранящихся в памяти и передачи этого потока на другую машину, понимающую формат сериализации.
В .NET сериализация часто используется с потоками (stream), абстракциями, применяемыми для чтения и записи в файлы, маршалинга данных по сети или управления памятью.
Сериализация в основном выполняется классами и интерфейсами пространства имен System.Runtime.Serialization. Для сериализации объекта нужно создать две вещи:
поток, в который будут помещаться объекты
форматер, сериализующий объекты в поток
Код, нужный для выполнения сериализации в .NET, крайне прост. Большая часть этого кода похожа на приведенный ниже шаблонный код, сериализующий объект в файловый поток, используя класс BinaryFormatter:
public static void WriteToFile(BaseballPlayer bp, String filename) { Stream str = File.OpenWrite(filename); BinaryFormatter formatter = new BinaryFormatter(); formatter.Serialize(str, bp); str.Close(); }
Использование BinaryFormatter позволяет получить компактное представление на диске, хотя это и не та форма, которую легко читать с помощью текстового редактора. Если требуется более человеколюбивое представление, используйте SOAP-форматер, как показано ниже:
public static void WriteToFile(SerialCircle shape, String filename) { Stream str = File.OpenWrite(filename); SoapFormatter formatter = new SoapFormatter(); formatter.Serialize(str, shape); str.Close(); }
Copyright © 1994-2016 ООО "К-Пресс"