J'écris une application qui prend les données de l'utilisateur et les stocke localement pour les utiliser plus tard. L'application sera démarrée et arrêtée assez souvent, et j'aimerais qu'elle enregistre/charge les données au démarrage/à la fin de l'application.
Ce serait assez simple si j'utilisais des fichiers plats, car les données n'ont pas vraiment besoin d'être sécurisées (elles ne seront stockées que sur ce PC). Les options sont donc, je crois, les suivantes :
- Fichiers plats
- XML
- BASE DE DONNÉES SQL
Les fichiers plats demandent un peu plus d'efforts de maintenance (pas de classes intégrées comme avec le XML), mais je n'ai jamais utilisé le XML auparavant, et le SQL me semble excessif pour cette tâche relativement facile.
Y a-t-il d'autres pistes à explorer ? Si non, laquelle est la meilleure solution ?
Edit : Pour ajouter un peu plus de données au problème, la seule chose que je voudrais stocker est un dictionnaire qui ressemble à ceci
Dictionary<string, List<Account>>
où Compte est un autre type personnalisé.
Devrais-je sérialiser le dict comme xmlroot, puis le type de compte comme attributs ?
Mise à jour 2 :
Il est donc possible de sérialiser un dictionnaire. Ce qui rend la chose compliquée, c'est que la valeur de ce dict est un générique lui-même, qui est une liste de structures de données complexes de type Compte. Chaque compte est assez simple, c'est juste un tas de propriétés.
Si j'ai bien compris, l'objectif est de parvenir à ce résultat :
<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>
Comme vous pouvez le voir, l'héritier est
- Nom d'utilisateur (chaîne de caractères du dict) >
- Compte (chaque compte dans la Liste) >
- Les données du compte (c'est-à-dire les propriétés de la classe).
L'obtention de cette disposition à partir d'un Dictionary<Username, List<Account>>
est le point délicat et l'essence de cette question.
Il y a beaucoup de réponses "comment faire" ici sur la sérialisation, ce qui est ma faute puisque je n'ai pas été plus clair au début, mais maintenant je cherche une solution définitive.
0 votes
Donnez plus de détails sur le type d'application, et les données stockées, ainsi que la taille attendue.
3 votes
Pour sérialiser un dictionnaire : stackoverflow.com/questions/1111724