Le moyen par défaut de le résoudre consiste à utiliser des fichiers de paramètres. Le problème avec les fichiers de paramètres est que vous devez définir tous les paramètres et écrire vous-même le code qui copie les données d'avant en arrière. Assez fastidieux si vous avez beaucoup de propriétés à suivre.
J'ai créé une bibliothèque assez flexible et très facile à utiliser pour cela, il vous suffit de lui dire quelles propriétés de quel objet suivre et il s'occupe du reste. Vous pouvez également en configurer la merde si vous le souhaitez.
La bibliothèque s'appelle Jot (github) , voici un ancien article de CodeProject j'ai écrit à ce sujet.
Voici comment vous l'utiliseriez pour suivre la taille et l'emplacement d'une fenêtre:
public MainWindow()
{
InitializeComponent();
_stateTracker.Configure(this)
.IdentifyAs("MyMainWindow")
.AddProperties(nameof(Height), nameof(Width), nameof(Left), nameof(Top), nameof(WindowState))
.RegisterPersistTrigger(nameof(Closed))
.Apply();
}
Jot vs fichiers de paramètres: avec Jot, il y a beaucoup moins de code, et c'est beaucoup moins sujet aux erreurs puisque vous n'avez besoin de mentionner chaque propriété qu'une seule fois . Avec les fichiers de paramètres, vous devez mentionner chaque propriété 5 fois : une fois lorsque vous créez explicitement la propriété et quatre fois supplémentaires dans le code qui copie les valeurs dans les deux sens.
Le stockage, la sérialisation, etc. sont entièrement configurables. De plus, lorsque vous utilisez IOC, vous pouvez même le connecter pour qu'il applique automatiquement le suivi à tous les objets qu'il résout. Tout ce que vous avez à faire pour rendre une propriété persistante est de lui appliquer un attribut [Trackable].
J'écris tout cela parce que je pense que la bibliothèque est de premier ordre et je veux en parler.