Vorgehensweise: Serialisieren eines Objekts als einen durch SOAP codierten XML-Stream
Da eine SOAP-Nachricht mithilfe von XML erstellt wird, kann die XmlSerializer-Klasse zum Serialisieren von Klassen und zum Generieren von codierten SOAP-Nachrichten verwendet werden. Das resultierende XML entspricht Abschnitt 5 des Dokuments „Simple Object Access Protocol (SOAP) 1.1“ des World Wide Web Consortium. Wenn Sie einen XML-Webdienst erstellen, der durch SOAP-Meldungen kommuniziert, können Sie den XML-Datenstrom anpassen, indem Sie eine Gruppe spezieller SOAP-Attribute auf Klassen und Member von Klassen anwenden. Eine Liste mit Attributen finden Sie unter Attributes That Control Encoded SOAP Serialization (Attribute zur Steuerung der Serialisierung von codiertem SOAP).
So serialisieren Sie ein Objekt als einen durch SOAP codierten XML-Stream
Erstellen Sie die Klasse mit dem XML Schema Definition-Tool (Xsd.exe).
Wenden Sie eines oder mehrere der speziellen Attribute aus
System.Xml.Serialization
an. Schlagen Sie hierzu in der Liste unter "Attribute für die Steuerung der Serialisierung von codiertem SOAP" nach.Erstellen Sie ein
XmlTypeMapping
-Objekt, indem Sie eine neueSoapReflectionImporter
-Klasse erstellen und dieImportTypeMapping
-Methode mit dem Typ der serialisierten Klasse aufrufen.Im folgenden Codebeispiel wird die
ImportTypeMapping
-Methode der KlasseSoapReflectionImporter
aufgerufen, um einXmlTypeMapping
-Objekt zu erstellen.' 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));
Erstellen Sie eine Instanz der
XmlSerializer
-Klasse, indem Sie dasXmlTypeMapping
-Objekt an den XmlSerializer(XmlTypeMapping)-Konstruktor übergeben.Dim mySerializer As XmlSerializer = New XmlSerializer(myTypeMapping)
XmlSerializer mySerializer = new XmlSerializer(myTypeMapping);
Rufen Sie die
Serialize
-Methode oderDeserialize
-Methode auf.
Beispiel
' 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);