反序列化为其名称空间已更改的类型

时间:2011-10-12 13:59:58

标签: c# .net serialization binaryformatter binary-serialization

使用.NET 4 / C#...

我需要反序列化包含名为ns1.X的类型的序列化表示的旧配置文件。序列化已使用BinaryFormatter完成。

问题是,经过一轮重构后,类型X已被移动到另一个名称空间,比如说ns2.X。

我尝试创建一个从ns2.X派生的新的空ns1.X类型,虽然这绕过'找不到类型ns1.X '错误,但是反序列化的属性对象都是null。此外,在此过程中没有被调用。

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

你需要使用ISerializationSurregate来实现这一目标。这并不困难,杰夫里希特解释得非常好。我推荐他的书CLR Via c#3。