3

我整天都在寻找一种没有结果的方法来实现这一目标......

我正在尝试反序列化一个对象。当我对其进行序列化时,我有一个名为(比如说)obsoleteBool 的 bool。在新版本的类中,我删除了这个 bool,现在反序列化时出现错误(未找到字段“obsoleteBool”)。

在新旧版本的类之间添加新字段非常容易。即使不使用 [OptionalField] 属性...但是如何管理在新旧版本的类之间删除字段?

4

1 回答 1

0

有3种可能的解决方案:

  • 最简单的:将旧字段添加到类的新版本中
  • 自定义代码:实现自定义反序列化器
  • 额外工作:编写一个遍历所有序列化类的转换程序,使用旧格式读取它们并使用新类定义重新序列化它们。

就商业价值而言,第一种选择可能更可取。

于 2014-08-03T19:49:05.470 回答