Проблема управления версиями двоичной сериализации - PullRequest
0 голосов
/ 30 апреля 2018

У меня есть класс, реализующий ISerializable. Старые двоичные данные не могут быть десериализованы после добавления нового поля в этот класс из-за следующей ошибки:

SerializationException: не найден элемент с именем 'x'.

Разве сериализатор не должен автоматически присваивать null или 0 этому полю в этом случае? Я пытался использовать Attribute [OptionalField(VersionAdded = 2)], но с тем же результатом.

Я могу справиться с этим, проверив, существует ли имя поля в SerializationEntry массив, но это правильный способ сделать это? Есть ли способ лучше?

...