Postupy: Serializace objektu jako XML streamu zakódovaného v protokolu SOAP
Vzhledem k tomu, že zpráva SOAP je vytvořena pomocí XML, XmlSerializer lze třídu použít k serializaci tříd a generování kódovaných zpráv SOAP. Výsledný kód XML odpovídá oddílu 5 dokumentu konsorcia World Wide Web Consortium "Simple Object Access Protocol (SOAP) 1.1". Při vytváření XML webové služby, které komunikují prostřednictvím zpráv protokolu SOAP, můžete upravit datový proud XML použitím sadu atributů protokolu SOAP speciální třídy a členy třídy. Seznam atributů naleznete v tématu Atributy, které řídí kódované serializace SOAP.
K serializaci objektu jako datový proud XML kódováním protokolu SOAP
Vytvořte třídu pomocí nástroje pro definici schématu XML (Xsd.exe).
Použije jeden nebo více atributů speciální nalezen v
System.Xml.Serialization
. Naleznete v seznamu v "Atributy serializace SOAP kódovaného tohoto ovládacího prvku."Vytvořit
XmlTypeMapping
vytvořením novéhoSoapReflectionImporter
a voláníImportTypeMapping
metoda s typem serializovaná třídy.Následující příklad kódu volá
ImportTypeMapping
metoduSoapReflectionImporter
třídy k vytvoření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));
Vytvořit instanci
XmlSerializer
třídy předánímXmlTypeMapping
k XmlSerializer(XmlTypeMapping) konstruktor.Dim mySerializer As XmlSerializer = New XmlSerializer(myTypeMapping)
XmlSerializer mySerializer = new XmlSerializer(myTypeMapping);
Volání
Serialize
neboDeserialize
metody.
Příklad
' 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);