Partager via


Comment : sérialiser un objet en tant que flux XML encodé selon le protocole SOAP

Un message SOAP étant basé sur du code XML, la classe XmlSerializer peut être utilisée pour sérialiser des classes et générer des messages encodés selon le protocole SOAP. Le résultat XML est conforme à la section 5 du document du World Wide Web Consortium (www.w3.org), « Simple Object Access Protocol (SOAP) 1.1 ». Lorsque vous créez un service Web XML qui communique à l'aide de messages SOAP, vous pouvez personnaliser le flux de données XML en appliquant un ensemble d'attributs SOAP spéciaux aux classes et membres de classes. Pour obtenir une liste des attributs, consultez Attributs qui contrôlent la sérialisation encodée selon le protocole SOAP.

Pour sérialiser un objet en tant que flux de données XML encodé selon le protocole SOAP

  1. Créez la classe à l’aide de l’outil XML Schema Definition (Xsd.exe).

  2. Appliquez un ou plusieurs des attributs spéciaux se trouvant dans System.Xml.Serialization. Consultez la liste indiquée dans « Attributs qui contrôlent la sérialisation encodée selon le protocole SOAP ».

  3. Créez un XmlTypeMapping en créant un nouveau SoapReflectionImporter et en appelant la méthode ImportTypeMapping avec le type de la classe sérialisée.

    L’exemple de code suivant appelle la méthode ImportTypeMapping de la classe SoapReflectionImporter pour créer un 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. Créez une instance de la classe XmlSerializer en passant XmlTypeMapping au constructeur XmlSerializer(XmlTypeMapping).

    Dim mySerializer As XmlSerializer = New XmlSerializer(myTypeMapping)  
    
    XmlSerializer mySerializer = new XmlSerializer(myTypeMapping);  
    
  5. Appelez la méthode Serialize ou Deserialize.

Exemple

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

Voir aussi