序列化方法及原始消息处理
1. 序列化格式
在服务模型中,默认使用DataContractSerializer来处理客户端和服务端的所有消息序列化。它支持数据契约、可序列化类型和消息契约。同时,为了与 ASMX Web 服务实现向后兼容,以及在某些罕见情况下对 XSD 架构和 CLR 类型之间的映射进行更精细的控制,WCF 也支持XmlSerializer。
1.1 序列化器对比
| 序列化类型 | DataContractSerializer | XmlSerializer |
|---|---|---|
| 数据契约 | 选择加入的任何可见性的数据成员使用 CLR 类型到 XSD 架构类型的映射进行序列化。 | 忽略。公共字段和属性被序列化。除非应用了 XML 序列化属性,否则使用默认的 CLR 类型到 XSD 架构类型的映射。 |
| SerializableAttribute | 所有字段(任何可见性)使用 CLR 类型到 XSD 架构类型的映射进行序列化。 | 忽略。公共字段和属性被序列化。除非应用了 XML 序列化属性,否则使用默认的 CLR 类型到 XSD 架构类型的映射。 |
| IXmlSerializable | 你 |