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


Как сериализовать объект как поток XML с кодировкой SOAP

Пример кода

Поскольку сообщение SOAP построено с использованием XML, XmlSerializer можно использовать для сериализации классов и созданию сообщений с кодировкой SOAP. Полученный в результате XML соответствует разделу 5 документа "Simple Object Access Protocol (SOAP) 1.1", разработанного консорциумом World Wide Web (www.w3.org). При создании XML-веб-службы, которая осуществляет связь посредством сообщений SOAP, можно настроить поток XML, применив к классам и членам классов набор специальных атрибутов SOAP. Список атрибутов см. в разделе Атрибуты управления SOAP-сериализацией с кодировкой.

Чтобы сериализовать объект как поток XML с кодировкой SOAP

  1. Создайте класс с помощью Инструмент определения схемы XML (Xsd.exe).

  2. Примените один или несколько специальных атрибутов из System.Xml.Serialization. Список атрибутов см. в разделе "Атрибуты управления сериализацией с кодировкой SOAP".

  3. Создайте XmlTypeMapping путем создания нового SoapReflectionImporter и вызова метода ImportTypeMapping с типом сериализуемого класса.

    В следующем примере кода вызывается метод ImportTypeMapping класса SoapReflectionImporter для создания XmlTypeMapping.

    ' Serializes a class named Group as a SOAP message.
    Dim myTypeMapping As XmlTypeMapping = (New SoapReflectionImporter(). _
    ImportTypeMapping(GetType(Group))
    
    // Serializes a class named Group as a SOAP message.
    XmlTypeMapping myTypeMapping = (new SoapReflectionImporter().
    ImportTypeMapping(typeof(Group));
    
  4. Создайте экземпляр класса XmlSerializer, передав XmlTypeMapping конструктору XmlSerializer.

    Dim mySerializer As XmlSerializer = New XmlSerializer(myTypeMapping)
    
    XmlSerializer mySerializer = new XmlSerializer(myTypeMapping);
    
  5. Вызовите метод Serialize или Deserialize.

Примеры

' Serializes a class named Group as a SOAP message.
Dim myTypeMapping As XmlTypeMapping = (New SoapReflectionImporter(). _
ImportTypeMapping(GetType(Group))
Dim mySerializer As XmlSerializer = New XmlSerializer(myTypeMapping)
// Serializes a class named Group as a SOAP message.
XmlTypeMapping myTypeMapping = (new SoapReflectionImporter().ImportTypeMapping(typeof(Group));
XmlSerializer mySerializer = new XmlSerializer(myTypeMapping);

См. также

Задачи

Как сериализовать объект
Как десериализовать объект
Как переопределить XML-сериализацию с кодировкой SOAP

Основные понятия

Атрибуты управления SOAP-сериализацией с кодировкой
XML-сериализация с использованием XML-веб-служб

Другие ресурсы

XML- и SOAP-сериализация

Дата сборки: 2010-03-10