这个问题很好地解释了序列化程序之间的功能差异。BinaryFormatter
速度快,XmlSerializer
可互操作等。我知道。
但是意图有什么区别?每个类的设计用途是什么?
尤其是:
- 为什么他们决定
XmlSerializer
对私人数据视而不见,当BinaryFormatter
看到它足够快时(通过所谓的慢反射) - 为什么他们要制作 3 个单独的 XML 序列化程序-
XmlSerializer
和?SoapFormatter
DataContractSerializer
- 为什么有些选择加入有些选择退出?
- 为什么他们让界面如此不一致?例如 XmlSerializer 不提供
OnDeserializedCallback
等效项。另一个示例 - XmlSerializerIsNullable
[XmlIgnore]
用于 BinarySerializer 使用的内容[OptionalField]
和[NonSerialized]
.