Могу ли я десериализовать объект обратно в исходный интерфейс, даже если все конкретные типы теперь ссылаются на новую версию интерфейса - PullRequest
1 голос
/ 24 февраля 2010

Я сталкиваюсь с этой серьезной проблемой, я должен по разным причинам изменить определение интерфейса на что-то другое. Этот интерфейс был сериализован как капля в базу данных. Теперь я пытаюсь сделать миграцию старого блоба в новый. Но мне удалось сохранить первоначальное определение контракта рядом с моим измененным определением интерфейса. Но все конкретные типы, которые должны были ссылаться на старый интерфейс, теперь ссылаются на новую модифицированную версию интерфейса.

В моей базе кода существует только старое определение интерфейса. Поэтому, когда я пытаюсь загрузить этот BLOB-объект из базы данных в старое определение контракта, я получаю

Ошибка "Объект не может быть сохранен в массиве этого типа" при десериализации. Может кто-нибудь, пожалуйста, помогите .?...

Также мне все еще нужна старая версия конкретных типов при попытке десериализации большого двоичного объекта обратно в определение старого интерфейса?

любая помощь будет оценена. Как я действительно застрял.

Спасибо, AG

1 Ответ

1 голос
/ 25 февраля 2010

Вы смотрели на класс SurrogateSelector? Это может помочь взять под контроль десериализацию, когда необходимо такое изменение класса.

...