Procedimiento para serializar un objeto como secuencia XML con codificación SOAP

Dado que un mensaje SOAP se genera mediante XML, se puede usar la clase XmlSerializer para serializar las clases y generar mensajes SOAP codificados. El XML resultante se ajusta a la sección 5 del documento de World Wide Web Consortium, "Protocolo simple de acceso a objetos (SOAP) 1.1". Si está creando un servicio Web XML que se comunica a través de mensajes SOAP, puede personalizar la secuencia XML aplicando un conjunto de atributos SOAP especiales a las clases y miembros de clases. Para obtener más información, vea Atributos que controlan la serialización SOAP codificada.

Para serializar un objeto como secuencia XML con codificación SOAP

  1. Cree la clase mediante la herramienta de definición de esquema XML (Xsd.exe).

  2. Aplique uno o más de los atributos especiales situados en System.Xml.Serialization. Vea la lista en "Atributos que controlan la serialización SOAP codificada".

  3. Cree XmlTypeMapping creando un nuevo SoapReflectionImportere invocando el método ImportTypeMapping con el tipo de la clase serializada.

    En el ejemplo de código siguiente se llama al método ImportTypeMapping de la clase SoapReflectionImporter para crear 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. Cree una instancia de la clase XmlSerializer pasando XmlTypeMapping al constructor XmlSerializer(XmlTypeMapping).

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

Ejemplo

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

Vea también