如何:将对象序列化为 SOAP 编码的 XML 流
由于 SOAP 消息是使用 XML 生成的,因此 XmlSerializer 类可用于序列化类和生成编码的 SOAP 消息。 生成的 XML 符合万维网联合会文档“简单对象访问协议 (SOAP) 1.1”的第 5 节。 如果您要创建通过 SOAP 消息进行通信的 XML Web services,则可以将一组特殊的 SOAP 属性应用于类和类的成员来自定义 XML 流。 有关属性列表,请参阅控制编码的 SOAP 序列化的特性。
将对象序列化为 SOAP 编码的 XML 流
使用 XML 架构定义工具 (Xsd.exe) 创建类。
应用在
System.Xml.Serialization
中找到的一个或多个特殊属性。 请参见“用来控制编码的 SOAP 序列化的属性”中的列表。通过创建新的
XmlTypeMapping
,然后用已序列化类的类型调用SoapReflectionImporter
方法,来创建ImportTypeMapping
。以下代码示例调用
SoapReflectionImporter
类的ImportTypeMapping
方法来创建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));
通过将
XmlSerializer
传递给XmlTypeMapping
构造函数,来创建 XmlSerializer(XmlTypeMapping) 类的实例。Dim mySerializer As XmlSerializer = New XmlSerializer(myTypeMapping)
XmlSerializer mySerializer = new XmlSerializer(myTypeMapping);
调用
Serialize
或Deserialize
方法。
示例
' 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);