Partilhar via


Como: Serializar um objeto como um fluxo XML codificado por SOAP

Como uma mensagem SOAP é criada usando XML, a XmlSerializer classe pode ser usada para serializar classes e gerar mensagens SOAP codificadas. O XML resultante está em conformidade com a seção 5 do documento do World Wide Web Consortium "Simple Object Access Protocol (SOAP) 1.1". Ao criar um XML Web Service que se comunica por meio de mensagens SOAP, você pode personalizar o fluxo XML aplicando um conjunto de atributos SOAP especiais a 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 por SOAP

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

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

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

    O exemplo de código a seguir chama o ImportTypeMapping método da SoapReflectionImporter classe para criar um XmlTypeMappingarquivo .

    ' 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. Crie uma instância da XmlSerializer classe passando o XmlTypeMapping para o XmlSerializer(XmlTypeMapping) construtor.

    Dim mySerializer As XmlSerializer = New XmlSerializer(myTypeMapping)  
    
    XmlSerializer mySerializer = new XmlSerializer(myTypeMapping);  
    
  5. Chame o Serialize método ou 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