Образец технологии базовой сериализации
В этом образце демонстрируется возможность среды CLR выполнять сериализацию графа объекта в поток. Для сериализации в примере могут использоваться классы SoapFormatter или BinaryFormatter. Связанный список, заполненный данными, сериализируется в поток файла или десериализируется из потока файла. В любом случае этот список отображается для того, чтобы можно было видеть результаты. Связанный список является списком типа LinkedList
, который определен в этом примере.
Дополнительные сведения о сериализации см. в комментариях к исходному коду и в файлах build.proj.
Построение образца с использованием командной строки
С помощью командной строки перейдите к одной из вложенных папок в каталоге Technologies\Serialization\Runtime Serialization\Basic, соответствующей выбранному языку.
В командной строке введите msbuild SerializationCS.sln, msbuild SerializationJSL.sln или msbuild SerializationVB.sln, в зависимости от выбранного языка программирования.
Построение примера с использованием Visual Studio
Откройте обозреватель Windows и перейдите к вложенной папке для данного примера, соответствующей выбранному языку.
Дважды щелкните значок файла SerializationCS.sln, SerializationJSL.sln или SerializationVB.sln file, в зависимости от выбранного языка программирования, чтобы открыть файл в Visual Studio.
В меню Построение выберите команду Построить решение.
По умолчанию построение образца приложения помещается в подкаталог \bin или \bin\Debug.
Выполнение примера
Перейдите в каталог, содержащий построенный исполняемый файл.
В командной строке введите Serialization.exe вместе с необходимыми значениями параметров.
Примечание В данном образце выполняется построение консольного приложения. Чтобы просмотреть выводимые им данные, необходимо запустить его в командной строке.
Примечания
Образец приложения принимает параметры командной строки, указывающие, какой тест следует выполнить. Чтобы выполнить сериализацию списка из 10 узлов в файл с именем Test.xml с помощью модуля форматирования SOAP, используйте параметры sx Test.xml 10.
Например:
Serialize.exe -sx Test.xml 10
Чтобы десериализировать файл Test.xml из предыдущего примера, используйте параметры dx Test.xml.
Например:
Serialize.exe -dx Test.xml
В двух приведенных выше примерах параметр командной строки "x" означает использование сериализации XML SOAP. Вместо этого можно использовать "b" для двоичной сериализации. Если необходимо испытать сериализацию с очень большим числом узлов, может потребоваться перенаправить выходные данные с консоли в файл.
Например:
Serialize.exe -sb Test.bin 10000 >somefile.txt
В следующем маркированном списке кратко описываются технологии и классы, используемые в этом образце.
Сериализация во время выполнения
IFormatter Используется для ссылки на объект BinaryFormatter или SoapFormatter.
BinaryFormatter Используется для сериализации связанного списка в поток двоичного формата. Двоичный модуль форматирования использует формат, который понятен только типу BinaryFormatter. Однако данные являются краткими.
SoapFormatter Используется для сериализации связанного списка в поток формата SOAP. SOAP является стандартным форматом.
Потоковый ввод-вывод
Stream Используется для сериализации и десериализации. Особый тип потока, который используется в этом примере, является типом FileStream. Однако сериализация может быть использована с любым типом, производным от Stream.
File Используется для создания объектов FileStream для чтения и создания файлов на диске.
FileStream Используется для сериализации и десериализации связанных списков.
См. также
Справочник
Класс BinaryFormatter
Класс File
Класс FileStream
Интерфейс IFormatter
Класс Random
Атрибут SerializableAttribute
Класс SoapFormatter
Класс Stream
Пространство имен System.IO
Пространство имен System.Runtime.Serialization
Пространство имен System.Xml.Serialization
Основные понятия
Базовая сериализация
Управление XML-сериализацией с использованием атрибутов
Введение в XML-сериализацию
Другие ресурсы
Двоичная сериализация
Сериализация
SOAP Service
XML- и SOAP-сериализация
Дата сборки: 2010-03-10