Instrukcje: Serializacja obiektu jako kodowanego strumienia XML protokołu SOAP

Ponieważ komunikat PROTOKOŁU SOAP jest kompilowany przy użyciu kodu XML, XmlSerializer klasa może służyć do serializacji klas i generowania zakodowanych komunikatów PROTOKOŁU SOAP. Wynikowy kod XML jest zgodny z sekcją 5 dokumentu World Wide Web Consortium "Simple Object Access Protocol (SOAP) 1.1". Podczas tworzenia usługi sieci Web XML, która komunikuje się za pośrednictwem komunikatów PROTOKOŁU SOAP, możesz dostosować strumień XML, stosując zestaw specjalnych atrybutów protokołu SOAP do klas i składowych klas. Aby uzyskać listę atrybutów, zobacz Atrybuty, które kontrolują zakodowaną serializacji protokołu SOAP.

Do serializacji obiektu jako strumień XML kodowany w formacie protokołu SOAP

  1. Utwórz klasę przy użyciu narzędzia definicji schematu XML (Xsd.exe).

  2. Zastosuj co najmniej jeden atrybut specjalny znaleziony w pliku System.Xml.Serialization. Zapoznaj się z listą w "Serializacji protokołu SOAP zakodowane tego formantu atrybuty".

  3. Utwórz XmlTypeMapping przez utworzenie nowego SoapReflectionImporteri wywoływanie ImportTypeMapping metody z typem klasy serializacji.

    Poniższy przykład kodu wywołuje metodę ImportTypeMappingSoapReflectionImporter klasy w celu utworzenia XmlTypeMappingklasy .

    ' 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. Utworzenie wystąpienia XmlSerializer klasy przez przekazanie XmlTypeMapping do XmlSerializer(XmlTypeMapping) konstruktora.

    Dim mySerializer As XmlSerializer = New XmlSerializer(myTypeMapping)  
    
    XmlSerializer mySerializer = new XmlSerializer(myTypeMapping);  
    
  5. Wywołanie Serialize lub Deserialize metody.

Przykład

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

Zobacz też