Share via


Como serializar um objeto como um fluxo XML codificado para SOAP

Exemplo de código

Como a mensagem de SOAP é criada usando XML, o XmlSerializer pode ser usado para serializar classes e gerar mensagens SOAP codificadas. O XML resultante está em conformidade com a seção 5 do documento "Simple Object Access Protocol (SOAP) 1.1" do World Wide Web Consortium (www.w3.org). Quando você está criando um serviço Web XML que se comunica por meio de mensagens SOAP, pode personalizar o fluxo XML aplicando um conjunto de atributos SOAP especiais para classes e membros de classes. Para obter uma lista de atributos, consulte Atributos que controlam a serialização SOAP codificada.

Para serializar um objeto como um fluxo XML codificado para SOAP

  1. Crie a classe usando o Ferramenta de Definição de Esquema XML (Xsd.exe).

  2. Aplique um ou mais dos atributos especiais localizados em System.Xml.Serialization. Consulte a lista em "Atributos que controlam a serialização SOAP codificada".

  3. Crie um XmlTypeMapping criando um novo SoapReflectionImporter e invocando o método ImportTypeMapping com o tipo da classe serializada.

    O exemplo de código a seguir chama o método ImportTypeMappingda classe SoapReflectionImporter para criar um 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. Cria uma instância da classe XmlSerializer passando o XmlTypeMapping para o construtor #ctor(XmlTypeMapping).

    Dim mySerializer As XmlSerializer = New XmlSerializer(myTypeMapping)
    
    XmlSerializer mySerializer = new XmlSerializer(myTypeMapping);
    
  5. Chame o método Serialize or Deserialize.

Exemplo

' 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);

Consulte também

Tarefas

Como serializar um objeto

Como desserializar um objeto

Como substituir a serialização XML de SOAP codificada

Conceitos

Atributos que controlam a serialização SOAP codificada

Serialização XML com Serviços Web XML

Outros recursos

Serialização XML e SOAP