DataContractSerializer vs XmlSerializer:每个序列化程序的优点和缺点

我的桌面应用程序使用XmlSerializer序列化对象。 build议我改用DataContractSerializer
我应该在哪种情况下使用DataContractSerializer

非常感谢

注释。
1.输出XML文件存储在本地。 没有其他应用程序反序列化来自该XML文件的对象。
2.我的应用程序与.NET Framework 3.5 SP1一起运行。

丹Rigsby有这个最后的职位 – 去读它!

XmlSerializer与DataContractSerializer(Web档案)

他说,所有这些都是以一种非常有说服力的方式来说的。

简而言之:

XmlSerializer的:

  • 已经存在很长时间了
  • 是“退出”; 一切公开被序列化,除非你不告诉它([XmlIgnore])

DataContractSerializer是:

  • 在城里的新孩子
  • 针对速度进行了优化(通常比XmlSerializer快大约10%)
  • “selectjoin” – 只有你特别标记为[DataMember]东西才会被序列化
  • 但是标有[DataMember]任何东西都会被序列化,无论是public还是private
  • 不支持XML属性(出于速度原因)