Ignore obsolete field when deserializing

2019-07-06 21:37发布

I have been searching all day for a way to achieve this without result...

I am trying to deserialize an object. When I serialized it, I had a bool called (let's say) obsoleteBool. In the new version of the class I removed this bool, and I now have an error when deserializing (Field "obsoleteBool" not found).

It is very easy to add new fields between an old and a new version of a class. Even without using the [OptionalField] attribute... but how can I manage the removal of a field between an old and new version of a class?

1条回答
地球回转人心会变
2楼-- · 2019-07-06 21:47

There are 3 possible solutions:

  • The simplest: Add the old Field to the New Version og the class
  • Custom code: Implement a custom deserializer
  • Extra work: Write a Conversion program that goes through all the serialized classes, that reads them With the old format and reserializes them With the New class definition.

In terms of business value the first option is probably preferable.

查看更多
登录 后发表回答