2013-04-09 5 views
1

Мне интересно, есть ли способ обработать десериализацию после смены классов, пространства имен?Обработка десериализации объектов после смены пространства имен

В настоящее время мне нужно сделать замену редактирования на текстовое значение XML, заменяющего прежнее пространство имен новым пространством имен.

Есть ли лучший способ сделать это?

ответ

0

Всегда сложный вопрос. Если вы не можете гарантировать, что класс не изменится, то, вероятно, лучше всего найти другой подход к сериализации.

Однако, чтобы ответить на вопрос, вы можете иметь свойство класса Version (или положить его в базовый класс, если у вас их много). Вы должны помнить, чтобы увеличивать это, когда вы меняете класс.

Тогда у вас может быть серия «миграций», которая будет знать, как преобразовать XML из одной версии в другую. Когда вы хотите десериализовать, сначала загрузите файл как XML, примените его в свою очередь (поскольку с момента создания файла было несколько изменений), а затем десериализуйте теперь преобразованный XML.

+0

Ничего похожего не очень чисто здесь? Ответ, вероятно, невозможен (узнайте, что вам нужно заранее, а также узнайте, что вам понадобится в будущем) – DermFrench

Смежные вопросы