Closed ClementDrn closed 2 years ago
Par défaut toutes les propriétés publiques sont sérialisées par le JsonSerializer
(doc). Il est possible d'ignorer une propriété avec [JsonIgnore]
(doc).
Par défaut les champs ne sont pas sérialisés, il est possible de les inclure à la sérialisation avec des [JsonInclude]
et en activant l'option (doc).
Pour comprendre la différence entre les champs et propriétés : https://stackoverflow.com/questions/295104/what-is-the-difference-between-a-field-and-a-property
https://docs.microsoft.com/fr-fr/dotnet/api/system.collections.generic.list-1?view=net-6.0
La sérialisation fonctionne à merveille. Voici un exemple de dossier sérialiser sous forme JSON :
{
"Coefficient":1000,
"Nom":"DUT S3",
"Notes":null,
"Groupes":[
{
"Coefficient":1000,
"Nom":"Math\u00E9matiques",
"Notes":[
{"Points":19750,"Max":20000,"Coefficient":1000,"Description":"Chapitres 1, 2 et 3"}
],
"Groupes":null
},
{
"Coefficient":1000,
"Nom":"Algorithmique",
"Notes":[
{"Points":18000,"Max":20000,"Coefficient":1000,"Description":"Chapitre 1"},
{"Points":15000,"Max":20000,"Coefficient":1000,"Description":"Chapitre 2"},
{"Points":16000,"Max":20000,"Coefficient":1000,"Description":"Chapitre 3"}
],
"Groupes":null
}
]
}
Lors de la désérialisation j'ai fait afficher le nom du dossier dans le titre de la fenêtre pour démontrer le bon fonctionnement du processus.
Il faut déplacer le système de sérialisation dans son propre fichier plutôt que dans le Viewmodel de la fenêtre qui l'utilise.
Description
Afin de sauvegarder les dossier de notes, il faut pouvoir les sérialiser en fichiers "shist". Ces fichiers sont ensuite lisbles par l'application qui peut les désérialiser.
Exigences
Les exigences pour fermer l'issue :