DataContractSerializer与XmlSerializer之间的区别

Ars*_*tti 10 wcf

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

Ron*_*tel 10

DataContractSerializer的

  • 用于在WCF服务中对JSON或XML进行序列化/反序列化.
  • 序列化属性和字段.
  • 比XmlSerializer快
  • 不控制xml的生成方式.当需要对生成的XML结构进行完全控制时,不应使用

的XMLSerializer

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


Vik*_*pta 10

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

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

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

这些是一些重要的区别.