Domyślnym sposobem rozwiązania tego problemu jest użycie plików ustawień. Problem z plikami ustawień polega na tym, że musisz zdefiniować wszystkie ustawienia i napisać kod, który sam kopiuje dane tam iz powrotem. Dość uciążliwe, jeśli masz wiele nieruchomości do śledzenia.
Stworzyłem do tego dość elastyczną i bardzo łatwą w użyciu bibliotekę, po prostu powiedz jej, które właściwości obiektu śledzić, a ona zajmie się resztą. Możesz też skonfigurować bzdury, jeśli chcesz.
Biblioteka nazywa się Jot (github) , oto stary artykuł w CodeProject , który o niej napisałem.
Oto, jak można go użyć do śledzenia rozmiaru i lokalizacji okna:
public MainWindow()
{
InitializeComponent();
_stateTracker.Configure(this)
.IdentifyAs("MyMainWindow")
.AddProperties(nameof(Height), nameof(Width), nameof(Left), nameof(Top), nameof(WindowState))
.RegisterPersistTrigger(nameof(Closed))
.Apply();
}
Jot a pliki ustawień: Jot zawiera znacznie mniej kodu i jest dużo mniej podatny na błędy, ponieważ wystarczy wspomnieć o każdej właściwości tylko raz . W przypadku plików ustawień musisz wspomnieć o każdej właściwości 5 razy : raz, gdy jawnie utworzysz właściwość i dodatkowe cztery razy w kodzie, który kopiuje wartości w tę iz powrotem.
Pamięć masowa, serializacja itp. Są w pełni konfigurowalne. Ponadto, korzystając z IOC, możesz nawet podłączyć go tak, aby automatycznie stosował śledzenie do wszystkich obiektów, które rozwiązuje, tak że wszystko, co musisz zrobić, aby właściwość stała się trwała, to nałożyć na nią atrybut [Trackable].
Piszę to wszystko, bo uważam, że biblioteka jest na najwyższym poziomie i chcę o tym mówić.