Сохранение классов в файлы, сериализация, поиск решения

Рейтинг: 1Ответов: 2Опубликовано: 04.09.2014

В классах хранятся различные настройки программы. Мне необходимо сохранять эти классы в файлы, чтобы пользователи могли открывать эти файлы и изменять.

Сначала я использовал бинарную сериализацию. У нее есть свой недостаток. Например, я сохранил класс в котором 5 полей, затем в программе что-то поменялось и в этом классе стало 6 полей. В итоге десериализовать класс из этого файла не получится.

Затем я написал свое решение, которое сохраняло классы в sqlite локальную БД. Достаточно удобно, но и требует времени на поддержку решения. И сейчас, столкнувшись с очередной необходимостью апгрейдить собственное решение, подумал, что, может, стоит поискать что готовое и более универсальное, чтобы не поддерживать свое решение :)

Итак, ищется готовое решение, позволяющее сохранять классы программы в файлы. Главное, чтобы при изменении количества полей класса файл десериализировался, при этом идеально будет, если недостающие поля заполняются значениями по умолчанию.

Ответы

▲ 2Принят

Newton Json умеет не только с json работать, но и с xml. Работает очень шустро, и документация есть хорошая. Я уверен, что если вы изучите эту библиотеку, она вам сильно поможет не только в вашей текущей задаче. Удачи!

▲ 1

На мой взгляд, настройки приложения должны храниться в app.config. Вы можете создать свою секцию со всеми необходимыми настройками. Покопайте в сторону ConfigurationSection.

Поддерживает значения по умолчанию, коллекции и много других плюшек. Расширяем, избавляет от необходимости создавать дополнительные файлы и поставляется "из коробки". Пример