@zbender

Как десериализировать измененный объект?

Выполнил сериализацию экземпляра класса в файл:
Stream FileStream = File.Create(filePath);
BinaryFormatter serializer = new BinaryFormatter();
serializer.Serialize(FileStream, Object);

После класс был изменен. Добавились и удалились поля.
При десериализации:
Stream FileStream = File.OpenRead(filePath);
BinaryFormatter deserializer = new BinaryFormatter();
object Object = deserializer.Deserialize(FileStream);

возникает эксепшн:
ObjectManager обнаружил недопустимое количество адресных привязок. Обычно это свидетельствует об ошибках в Formatter.

Необходимо, получить данные из одного поля сохраненного объекта. Это поле, при редактировании класса осталось не тронутым. Контроль версий не использовался, поэтому вернуть класс к состоянию, в котором происходила сериализация, не получится.
  • Вопрос задан
  • 2592 просмотра
Пригласить эксперта
Ответы на вопрос 1
aush
@aush
Вы хотите решить общую задачу десериализации измененного типа или вам нужно из одного конкретного файла достать данные? Если 1, то бросьте это дело, если 2, то можете просто посмотреть сериализованные данные:

772a7beefb1e4dd6925f631cb1396654.pngbd0f0b69aa4b47b3a3667b15f4f441f8.png
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы