Просто чтобы убедиться, что я понимаю
Требования:
1. Сохраните пользовательские настройки для вашего приложения в файле или в базе данных.
2. Время от времени вы можете добавлять дополнительные свойства.
Это веб-базируется? выиграть формы ?, wcf?
Моя первоначальная мысль - включить номер версии при сохранении.
Каждый раз, когда вы обновляете класс настроек, создайте новый класс настроек, который наследуется от последней версии. Добавьте новые свойства и обновите номер версии.
Хранение:
В БД два поля: 1 - версия, 2 - сериализованные данные настроек.
В файле две записи 1-версия 2-сериализованные данные настроек.
При сериализации не забудьте указать номер версии класса настроек.
При десериализации используйте Factory для получения правильной версии класса настроек.
Следует иметь в виду, что вам придется учитывать более старые экземпляры настроек в вашем приложении.
Если вы добавите свойство «Цвет фона» сегодня, ни у одного из файлов настроек до сегодняшнего дня не будет доступа к нему. Вам нужно убедиться, что приложение справится с этой ситуацией.
Таким образом, если Factory находит более старую версию класса настроек, она может использовать сохраненные данные, чтобы создать самую новую версию класса и заполнить новые свойства значениями по умолчанию.
Удачи,
Patrick