Como: serializar um objeto como um fluxo XML codificado para SOAPHow to: Serialize an Object as a SOAP-Encoded XML Stream

Como a mensagem de SOAP é criada usando XML, a classe XmlSerializer pode ser usado para serializar classes e gerar mensagens SOAP codificadas.Because a SOAP message is built using XML, the XmlSerializer class can be used to serialize classes and generate encoded SOAP messages. O XML resultante está em conformidade com a seção 5 do documento "Protocolo SOAP 1.1" do World Wide Web Consortium.The resulting XML conforms to section 5 of the World Wide Web Consortium document "Simple Object Access Protocol (SOAP) 1.1". 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.When you are creating an XML Web service that communicates through SOAP messages, you can customize the XML stream by applying a set of special SOAP attributes to classes and members of classes. Para obter mais informações, consulte Atributos que controlam a serialização SOAP codificada.For a list of attributes, see Attributes That Control Encoded SOAP Serialization.

Para serializar um objeto como um fluxo XML codificado para SOAPTo serialize an object as a SOAP-encoded XML stream

  1. Criar a classe usando a Ferramenta de Definição de Esquema XML (Xsd.exe).Create the class using the XML Schema Definition Tool (Xsd.exe).

  2. Aplique um ou mais dos atributos especiais localizados em System.Xml.Serialization.Apply one or more of the special attributes found in System.Xml.Serialization. Consulte a lista em "Atributos que controlam a serialização SOAP codificada".See the list in "Attributes That Control Encoded SOAP Serialization."

  3. Crie um XmlTypeMapping criando um novo SoapReflectionImporter e invocando o método ImportTypeMapping com o tipo da classe serializada.Create an XmlTypeMapping by creating a new SoapReflectionImporter, and invoking the ImportTypeMapping method with the type of the serialized class.

    O exemplo de código a seguir chama o método ImportTypeMapping da classe SoapReflectionImporter para criar um XmlTypeMapping.The following code example calls the ImportTypeMapping method of the SoapReflectionImporter class to create an 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 XmlSerializer(XmlTypeMapping).Create an instance of the XmlSerializer class by passing the XmlTypeMapping to the XmlSerializer(XmlTypeMapping) constructor.

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

ExemploExample

' 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émSee also