DataContractSerializer 和 DataContractJsonSerializer 有什么区别? 课程,用途和速度有什么不同吗?
答案 0 :(得分:6)
直接来自MSDN
DataContractSerializer ---使用提供的数据协定将类型的实例序列化并反序列化为 XML 流或文档。这个类不能被继承。
DataContractJsonSerializer ---将对象序列化为 JavaScript Object Notation (JSON)
,并将JSON数据反序列化为对象。这个类不能被继承。
在速度上我认为json可能会更快
答案 1 :(得分:3)
除了明显的序列化格式差异外,各个序列化程序能够处理的内容也存在限制。
特别是,DataContractSerializer
能够通过将IsReference
构造函数的DataContractAttribute
属性设置为true
来处理circular references。 DataContractJsonSerializer
无法处理此方案,因为JSON (according to the WriteObject
error message)中没有标准化的引用表示。