1
This question在解釋串行器之間的功能方面做得很好。 BinaryFormatter
很快,XmlSerializer
可互操作等。我知道這一點。FCL中的序列化程序之間的意圖有什麼區別?
但intent有什麼區別?每個班級設計的用例是什麼?
特別是:
- 他們爲什麼決定要
XmlSerializer
盲目的私人數據,當BinaryFormatter
看到它足夠快(通過所謂慢反射) - 爲什麼他們讓3個獨立的XML序列化 -
XmlSerializer
,SoapFormatter
和DataContractSerializer
? - 爲什麼選擇加入和選擇退出?
- 他們爲什麼使界面如此不一致?例如。 XmlSerializer不提供
OnDeserializedCallback
等價物。另一個示例 - XmlSerializer使用IsNullable
[XmlIgnore]
,BinarySerializer使用的是[OptionalField]
和[NonSerialized]
。