c# - 反序列化为 namespace 已更改的类型

标签 c# .net serialization binaryformatter binary-serialization

使用 .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/

相关文章:

php - Drupal PHP 序列化和反序列化

c# - 无法在 C# 中加载 pdf 文档

c# - 将 C# 委托(delegate)转换为单元测试

c# - 命名函数定义范围

c# - .NET 远程处理 : how to access server application objects from remotable object?

c# - 如何从 aspx.cs 页面切换确认消息框

python - Django:序列化多个链接模型的列表

c# - 在代码隐藏中使用 Multibinding.StringFormat

c# - 在 .NET 的后台线程上运行遗留的、不可重入的代码

java - 如何存储包含用户输入值的数组