Проблема с десериализацией после переименования сборки - PullRequest
1 голос
/ 08 февраля 2011

У меня следующая проблема. Чтобы изменить имя скомпилированного исполняемого файла, я изменил имя сборки. Но после этого я не смог открыть старый двоичный сериализованный объект из файла. У меня есть SerializationException: "Невозможно найти сборку" OldAssembly ".

Я знаю, что это можно как-то решить, создав собственный SerializationBinder и переопределив там BindToType. Но я не знаю, как это сделать.

Любые советы или подсказки приветствуются.

1 Ответ

1 голос
/ 08 февраля 2011

Использовали ли вы [DataContract] или [Serializable], чтобы пометить ваши объекты для сериализации?

Если вы используете DataContract, вы можете изменить пространство имен xml для вашего нового объекта, чтобы он не искал старую сборку / тип:

[DataContract (Namespace = "http://schemas.datacontract.org/2004/07/Your.Old.Namespace.ClassName")]

Я сделал это недавно, когда переносил сериализованный тип из одной сборки в другую.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...