Я пишу приложение, которое берет пользовательские данные и хранит их локально для дальнейшего использования. Приложение будет запускаться и останавливаться довольно часто, и я бы хотел, чтобы оно сохраняло / загружало данные при запуске / завершении приложения.
Было бы довольно просто, если бы я использовал плоские файлы, поскольку данные действительно не нуждаются в защите (они будут храниться только на этом ПК). Я считаю, что следующие варианты:
- Плоские файлы
- XML
- БД SQL
Плоские файлы требуют немного больше усилий для обслуживания (без встроенных классов, как с XML), однако я раньше не использовал XML, и SQL кажется излишним для этой относительно простой задачи.
Есть ли другие возможности, которые стоит изучить? Если нет, то какое из них лучшее решение?
Изменить: чтобы добавить немного больше данных к проблеме, в основном единственное, что я хотел бы сохранить, - это словарь, который выглядит так
Dictionary<string, List<Account>>
где Account - другой настраиваемый тип.
Могу ли я сериализовать dict как xmlroot, а затем тип Account как атрибуты?
Обновление 2:
Так что можно сериализовать словарь. Сложность состоит в том, что значение этого dict само по себе является универсальным, которое представляет собой список сложных структур данных типа Account. Каждая учетная запись довольно проста, это просто набор свойств.
Насколько я понимаю, цель здесь - попытаться прийти к следующему:
<Username1>
<Account1>
<Data1>data1</Data1>
<Data2>data2</Data2>
</Account1>
</Username1>
<Username2>
<Account1>
<Data1>data1</Data1>
<Data2>data2</Data2>
</Account1>
<Account2>
<Data1>data1</Data1>
<Data2>data2</Data2>
</Account2>
</Username2>
Как видите, иерархия
- Имя пользователя (строка dict)>
- Учетная запись (каждая учетная запись в Списке)>
- Данные учетной записи (т.е. свойства класса).
Получить этот макет от Dictionary<Username, List<Account>>
- непростая задача, и суть этого вопроса.
Здесь много ответов о сериализации, что является моей ошибкой, поскольку я не прояснил это на раннем этапе, но теперь я ищу определенное решение.