Dot-Net

不同程序集版本的二進制反序列化

  • February 3, 2009

我有一個項目,它使用 BinaryFormatter 序列化具有字元串和布爾的結構集合?數據類型。

序列化/反序列化工作正常,但是如果我要更改完成工作的程序集,它無法反序列化,因為二進製文件中的標頭表明它需要Assembly x而不是Assembly y處理數據。

是否可以將序列化/反序列化設置為與程序集無關?

您可以通過將自定義 SerializationBinder 分配給格式化程序來控制二進制格式化程序如何解析其類型。通過這種方式,您不需要弄亂 AppDomain 的解析事件,並且消除了由此產生的意外副作用的風險。

MSDN上有一個詳細的範例。

引用自:https://stackoverflow.com/questions/505611