Лучший способ хранить данные локально in.NET (C#)



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



было бы довольно просто, если бы я использовал плоские файлы, так как данные на самом деле не нужно защищать (они будут храниться только на этом ПК). Варианты, которые я считаю, таковы:




  • плоские файлы

  • XML

  • SQL DB


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



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





Edit: чтобы добавить немного больше данных к проблеме, в основном единственное, что я хотел бы сохранить, это словарь, который выглядит так это



Dictionary<string, List<Account>> 


где учетная запись-это другой пользовательский тип.



Я бы сериализовал dict как xmlroot, а затем тип учетной записи в качестве атрибутов?





обновление 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>> - это сложная процедура, и суть этого вопроса.



здесь есть много ответов " как " на сериализацию, которая является моей ошибка, так как я не сделал это яснее на ранней стадии, но теперь я ищу определенное решение.

795   0  

Comments

    Ничего не найдено.