Я использовал BinaryFormatter
для хранения настроек моего приложения. Теперь, спустя несколько лет в продолжение разработки, после того, как многие пользователи уже используют мое приложение, я хочу изменить, как несколько классов называются и в каких пространствах имен они расположены. Однако, если я это сделаю, больше невозможно загрузить настройки, потому что BinaryFormater
называет вещи своими именами в коде.Возможно ли восстановить объект, сериализованный через «BinaryFormatter» после изменения имен классов?
Так, например, если я изменяю MyNamespace.ClassOne
на MyNamespace.Class.NumberOne
в коде, я больше не могу загружать настройки, потому что MyNamespace.ClassOne
больше не существует.
Я хотел бы сделать это и разрешить пользователям сохранять свои файлы настроек. Это возможно?
Я имею в виду, я думаю, что я могу изучить формат, в котором он был сохранен, и вручную изменить двоичный файл, заменив имена классов, но это будет подход хакера. Должен быть нормальный подход к этому, не так ли?
Существуют и другие бинарные сериализаторы, которые являются агностиками класса-культуры. ProtoBuf-net - один, и я думаю, что NetSerializer в CodeProject тоже. – Plutonix