使用 .NET 4/C#...
我需要反序列化包含名为 ns1.X 的类型的序列化表示的旧配置文件。序列化已使用BinaryFormatter
.
问题是,经过一轮重构后,类型 X 已移至不同的命名空间,例如 ns2.X 。
我尝试创建一个从 ns2.X 派生的新的空 ns1.X 类型,虽然这避免了“无法找到类型 ns1.X ”错误,但反序列化对象中的属性都是null
. 此外,在此过程中不会调用任何 ctor。
有什么建议么?
使用 .NET 4/C#...
我需要反序列化包含名为 ns1.X 的类型的序列化表示的旧配置文件。序列化已使用BinaryFormatter
.
问题是,经过一轮重构后,类型 X 已移至不同的命名空间,例如 ns2.X 。
我尝试创建一个从 ns2.X 派生的新的空 ns1.X 类型,虽然这避免了“无法找到类型 ns1.X ”错误,但反序列化对象中的属性都是null
. 此外,在此过程中不会调用任何 ctor。
有什么建议么?
您将需要使用ISerializationSurregate来实现这一点。这并不太难,Jeff Richter 解释得非常好。我推荐他的书 CLR Via c# 3。