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