DataContractSerializer与XmlSerializer之间的区别

时间:2014-09-09 05:21:55

标签: wcf

我正在阅读WCF基础知识,任何人都可以告诉我们应该在哪些情况下使用DataContractSerializer和XmlSerializer?

2 个答案:

答案 0 :(得分:9)

<强>的DataContractSerializer

  • 用于在WCF中对类进行序列化/反序列化 来自JSON或XML的服务。
  • 序列化属性和字段。
  • 比XmlSerializer快
  • 不控制xml的生成方式。满时不应该使用 需要控制生成的XML结构

<强>的XMLSerializer

  • XmlSerializer仅用于XML序列化
  • 支持对XML结构的完全控制
  • 仅序列化公共属性

答案 1 :(得分:8)

  1. DataContractSerializer比Xmlserializer具有更好的性能。这是因为DataContratSerializer显式地显示了哪些字段或属性被序列化为XML。

  2. DataContractSerializer能够序列化实现Idictionary的类型而不是XML序列化器。

  3. DataContractSerializer序列化所有标有[DataMember]属性的成员,即使成员被标记为私有。 XML序列化程序仅序列化公共成员。

  4. 这些是一些重要的区别。