Я пытаюсь десериализовать "SomeClass" с более старой версией приложения. Я получаю это ниже исключения
System.Runtime.Serialization.SerializationException: ObjectManager обнаружил недопустимое количество исправлений. Это обычно указывает на проблему в Formatter.
Отсериализация выдает исключение, когда я сериализует версию 0,9 и пытается десериализоваться с использованием версии 0.8. Я думал, что атрибут OptionalField
выполнит трюк, но это не так.
// Version 0.8
[Serializable()]
class Foo{
Bar b;
}
// Version 0.9
[Serializable()]
class Foo{
Bar b;
[OptionalField]
Zoo z;
}
Учитывая, что я не могу изменить версию 0.8, как мне добавить большее состояние в объект Foo, чтобы предыдущие версии могли десериализовать все, что они могут?
Любой указатель будет действительно оценен.
Обновление 1 Бар и зоопарк - это другие классы, которые являются сериализуемыми и содержат Hashtables и другие сериализуемые материалы. В этих классах все сериализуется. Кроме того, у меня нет никаких расположений.