使用 .NET 4/C#...
我需要反序列化旧的配置文件,其中包含名为 ns1.X 的类型的序列化表示。序列化已使用 BinaryFormatter
完成。
问题是,经过一轮重构后,类型 X 已移至不同的命名空间,例如 ns2.X。
我已经尝试创建一个新的从 ns2.X 派生的空 ns1.X 类型,虽然这避免了“找不到类型 ns1.X”错误,但反序列化的属性对象都是 null
。此外,在此过程中不会调用任何 ctors。
有什么建议吗?
最佳答案
您将需要使用 ISerializationSurregate让这一切发生。这并不太难,Jeff Richter 解释得非常好。我推荐他的书 CLR Via c# 3。
关于c# - 反序列化为 namespace 已更改的类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7741275/