DataContractSerializer和DataContractJsonSerializer之间的区别

时间:2013-09-27 00:43:19

标签: c# .net

DataContractSerializer DataContractJsonSerializer 有什么区别?  课程,用途和速度有什么不同吗?

2 个答案:

答案 0 :(得分:6)

直接来自MSDN

DataContractSerializer ---使用提供的数据协定将类型的实例序列化并反序列化为 XML 流或文档。这个类不能被继承。

DataContractJsonSerializer ---将对象序列化为 JavaScript Object Notation (JSON) ,并将JSON数据反序列化为对象。这个类不能被继承。

在速度上我认为json可能会更快

答案 1 :(得分:3)

除了明显的序列化格式差异外,各个序列化程序能够处理的内容也存在限制。

特别是,DataContractSerializer能够通过将IsReference构造函数的DataContractAttribute属性设置为true来处理circular referencesDataContractJsonSerializer无法处理此方案,因为JSON (according to the WriteObject error message)中没有标准化的引用表示。