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
Créez la classe à l’aide de l’outil XML Schema Definition (Xsd.exe).
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 ».Créez un
XmlTypeMapping
en créant un nouveauSoapReflectionImporter
et en appelant la méthodeImportTypeMapping
avec le type de la classe sérialisée.L’exemple de code suivant appelle la méthode
ImportTypeMapping
de la classeSoapReflectionImporter
pour créer unXmlTypeMapping
.' 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));
Créez une instance de la classe
XmlSerializer
en passantXmlTypeMapping
au constructeur XmlSerializer(XmlTypeMapping).Dim mySerializer As XmlSerializer = New XmlSerializer(myTypeMapping)
XmlSerializer mySerializer = new XmlSerializer(myTypeMapping);
Appelez la méthode
Serialize
ouDeserialize
.
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);