Como: Serializar um objeto como um fluxo XML codificado por SOAP
Como uma mensagem SOAP é criada usando XML, a XmlSerializer classe pode ser usada para serializar classes e gerar mensagens SOAP codificadas. O XML resultante está em conformidade com a seção 5 do documento do World Wide Web Consortium "Simple Object Access Protocol (SOAP) 1.1". Ao criar um XML Web Service que se comunica por meio de mensagens SOAP, você pode personalizar o fluxo XML aplicando um conjunto de atributos SOAP especiais a classes e membros de classes. Para obter uma lista de atributos, consulte Atributos que controlam a serialização SOAP codificada.
Para serializar um objeto como um fluxo XML codificado por SOAP
Crie a classe usando a Ferramenta de Definição de Esquema XML (Xsd.exe).
Aplique um ou mais dos atributos especiais encontrados em
System.Xml.Serialization
. Consulte a lista em "Atributos que controlam a serialização SOAP codificada".Crie um
XmlTypeMapping
criando um novoSoapReflectionImporter
e invocando oImportTypeMapping
método com o tipo da classe serializada.O exemplo de código a seguir chama o
ImportTypeMapping
método daSoapReflectionImporter
classe para criar umXmlTypeMapping
arquivo .' 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));
Crie uma instância da
XmlSerializer
classe passando oXmlTypeMapping
para o XmlSerializer(XmlTypeMapping) construtor.Dim mySerializer As XmlSerializer = New XmlSerializer(myTypeMapping)
XmlSerializer mySerializer = new XmlSerializer(myTypeMapping);
Chame o
Serialize
método ouDeserialize
.
Exemplo
' 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);