Postupy: Serializace objektu jako XML streamu zakódovaného v protokolu SOAP

Vzhledem k tomu, že zpráva SOAP je vytvořena pomocí XML, XmlSerializer lze třídu použít k serializaci tříd a generování kódovaných zpráv SOAP. Výsledný kód XML odpovídá oddílu 5 dokumentu konsorcia World Wide Web Consortium "Simple Object Access Protocol (SOAP) 1.1". Při vytváření XML webové služby, které komunikují prostřednictvím zpráv protokolu SOAP, můžete upravit datový proud XML použitím sadu atributů protokolu SOAP speciální třídy a členy třídy. Seznam atributů naleznete v tématu Atributy, které řídí kódované serializace SOAP.

K serializaci objektu jako datový proud XML kódováním protokolu SOAP

  1. Vytvořte třídu pomocí nástroje pro definici schématu XML (Xsd.exe).

  2. Použije jeden nebo více atributů speciální nalezen v System.Xml.Serialization. Naleznete v seznamu v "Atributy serializace SOAP kódovaného tohoto ovládacího prvku."

  3. Vytvořit XmlTypeMapping vytvořením nového SoapReflectionImportera volání ImportTypeMapping metoda s typem serializovaná třídy.

    Následující příklad kódu volá ImportTypeMapping metodu SoapReflectionImporter třídy k vytvoření 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. Vytvořit instanci XmlSerializer třídy předáním XmlTypeMapping k XmlSerializer(XmlTypeMapping) konstruktor.

    Dim mySerializer As XmlSerializer = New XmlSerializer(myTypeMapping)  
    
    XmlSerializer mySerializer = new XmlSerializer(myTypeMapping);  
    
  5. Volání Serialize nebo Deserialize metody.

Příklad

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

Viz také