当从数据库中反序列化数据blob时,我收到“无效的修正数”错误,我正在寻找一种方法来找出数据/代码的问题所在。
基本上我之前的那个人认为将大量重要数据作为序列化blob存储在数据库中的表中是个好主意。由于他离开了代码已被多次更改,但我需要从客户的旧数据库中获取重要数据。
所以我有更新的对象,但没有首先序列化的上一个对象的记录。
如何查找缺少的字段,重命名字段或重用的名称导致此问题?
无论如何,我可以获得有关失败原因的更详细信息?
以下是反序列化代码的示例。
using (var ms = new MemoryStream(data))
{
var bf = new BinaryFormatter()
{
AssemblyFormat = FormatterAssemblyStyle.Simple,
Binder = new TypeRedirector()
};
return (T)bf.UnsafeDeserialize(ms, null);
}//using