我正在处理的一个项目需要在关闭之前序列化一个数据结构,并在它再次启动时从这个序列化数据中恢复其状态。
去年,我们正在为 .NET 1.1 构建,遇到了一个棘手的问题:
- 我们的代码在 .NET 2.0 上运行
- 客户升级了一些软件,以某种方式将 1.1 设置为默认值
- 我们的代码在 .NET 1.1 上运行,无法反序列化其存储状态
通过禁止特定的软件升级,这个特定问题得到了“解决”,现在我们的目标是 .NET 2.0 框架(因此我们不可能在 1.1 上运行),这应该不是问题。
这种序列化在 2.0 和更新的框架之间再次发生不兼容变化的可能性有多大?如果我们将<supportedVersion>
代码修复为 2.0.50727,那么 2.0.50727.1434 和 2.0.50727.nnnn(未来的某个版本)之间发生变化的可能性有多大?被序列化的数据结构是标准类库中的数组、映射、字符串等。
此外,即使在进一步的 .NET 升级之后,是否也能保证始终安装 2.0.50727 框架?欢迎指向 Microsoft 文档。