HOW TO:將物件序列化為 SOAP 編碼的 XML 資料流

因為 SOAP 訊息是使用 XML 建置的,所以 XmlSerializer 類別可用來序列化類別並產生編碼的 SOAP 訊息。 產生的 XML 會與全球資訊網協會之<Simple Object Access Protocol (SOAP) 1.1>文件中的第 5 節相符。 當您建立透過 SOAP 訊息溝通的 XML Web 服務時,您可以將特殊 SOAP 屬性集套用至類別與類別成員以自訂 XML 資料流。 如需屬性的清單,請參閱控制編碼 SOAP 序列化的屬性

將物件序列化為 SOAP 編碼的 XML 資料流

  1. 使用 XML 結構描述定義工具 (Xsd.exe)建立類別。

  2. 套用在 System.Xml.Serialization中發現的一個或多個特殊屬性。 請參閱<控制編碼 SOAP 序列化的屬性>中的清單。

  3. 藉由建立新的 XmlTypeMapping 及使用已序列化類別的型別叫用 SoapReflectionImporter 方法,來建立 ImportTypeMapping

    下列程式碼範例會呼叫 SoapReflectionImporter 類別的 ImportTypeMapping 方法,以建立 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. 利用傳遞 XmlSerializerXmlTypeMapping 建構函式的方式,來建立 XmlSerializer(XmlTypeMapping) 類別的執行個體。

    Dim mySerializer As XmlSerializer = New XmlSerializer(myTypeMapping)  
    
    XmlSerializer mySerializer = new XmlSerializer(myTypeMapping);  
    
  5. 呼叫 SerializeDeserialize 方法。

範例

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

另請參閱