Спосіб вирішення за замовчуванням - використання файлів налаштувань. Проблема з файлами налаштувань полягає в тому, що вам потрібно визначити всі налаштування та написати код, який копіює дані вперед і назад. Досить нудно, якщо у вас багато властивостей, про які слід стежити.
Я створив для цього досить гнучку і дуже просту у використанні бібліотеку, ви просто скажете їй, які властивості якого об’єкта слід відстежувати, а вона робить решту. Ви також можете налаштувати лайно з цього, якщо хочете.
Бібліотека називається Jot (github) , ось стара стаття CodeProject я писав.
Ось як ви можете використовувати його для відстеження розміру та розташування вікна:
public MainWindow()
{
InitializeComponent();
_stateTracker.Configure(this)
.IdentifyAs("MyMainWindow")
.AddProperties(nameof(Height), nameof(Width), nameof(Left), nameof(Top), nameof(WindowState))
.RegisterPersistTrigger(nameof(Closed))
.Apply();
}
Jot проти файлів налаштувань: У Jot значно менше коду, і це значно менше схильності до помилок, оскільки вам потрібно лише один раз згадати кожну властивість . У файлах налаштувань вам потрібно згадати кожну властивість 5 разів : один раз, коли ви явно створюєте властивість, і ще чотири рази в коді, який копіює значення вперед і назад.
Зберігання, серіалізація тощо можна повністю налаштувати. Крім того, використовуючи IOC, ви навіть можете підключити його, щоб він автоматично застосовував відстеження до всіх об'єктів, які він вирішує, так що все, що вам потрібно зробити, щоб зробити властивість стійким, - це ляпати атрибут [Trackable].
Я пишу все це, тому що вважаю, що бібліотека на високому рівні, і я хочу про це сказати.