Il modo predefinito per risolverlo è utilizzare i file delle impostazioni. Il problema con i file delle impostazioni è che devi definire tutte le impostazioni e scrivere il codice che copia i dati avanti e indietro da solo. Abbastanza noioso se hai molte proprietà di cui tenere traccia.
Ho creato una libreria abbastanza flessibile e molto facile da usare per questo, devi solo dirgli quali proprietà di quale oggetto tenere traccia e lui fa il resto. Puoi anche configurare la schifezza, se lo desideri.
La libreria si chiama Jot (github) , ecco un vecchio articolo di CodeProject ho scritto a riguardo.
Ecco come lo useresti per tenere traccia delle dimensioni e della posizione di una finestra:
public MainWindow()
{
InitializeComponent();
_stateTracker.Configure(this)
.IdentifyAs("MyMainWindow")
.AddProperties(nameof(Height), nameof(Width), nameof(Left), nameof(Top), nameof(WindowState))
.RegisterPersistTrigger(nameof(Closed))
.Apply();
}
Jot e file di impostazioni: con Jot c'è molto meno codice ed è molto meno soggetto a errori poiché è necessario menzionare ogni proprietà una sola volta . Con i file delle impostazioni è necessario menzionare ciascuna proprietà 5 volte : una volta quando si crea esplicitamente la proprietà e altre quattro volte nel codice che copia i valori avanti e indietro.
Archiviazione, serializzazione ecc. Sono completamente configurabili. Inoltre, quando si utilizza IOC, è anche possibile collegarlo in modo che applichi automaticamente il tracciamento a tutti gli oggetti che risolve in modo che tutto ciò che è necessario fare per rendere persistente una proprietà è schiaffeggiare un attributo [Trackable] su di essa.
Sto scrivendo tutto questo perché penso che la libreria sia di prim'ordine e voglio parlarne con la bocca aperta.