Я пытаюсь реорганизовать иерархию пространства имен моего приложения, поэтому я использую подкласс System.Runtime.Serialization.SerializationBinder
, чтобы попытаться обработать переименование.(Большинство моих переименованных классов правильно десериализованы в их новые пространства имен без проблем.)
Проблема, с которой я столкнулся, заключается в том, что один моих сериализованных классов (который реализует INotifyPropertyChanged
) не удалось пометитьсобытие PropertyChanged
как [field:NonSerialized]
(упс), поэтому унаследованные файлы держатся за ссылку на устаревшую Type
для этого класса (через сериализованный делегат).
Я реализовал ISerializable
в переименованном классе в попытке избежать десериализации события PropertyChanged
, но, похоже, это не сработало - попытка создания экземпляра старого (переименованного) класса все еще происходит.
Как мнезаставить BinaryFormatter
избегать попыток десериализации делегатов?