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属性(出于速度原因)