Способ решения по умолчанию - использовать файлы настроек. Проблема с файлами настроек заключается в том, что вы должны определить все настройки и написать код, который копирует данные туда и обратно самостоятельно. Довольно утомительно, если у вас много свойств для отслеживания.
Я сделал довольно гибкую и очень простую в использовании библиотеку для этого, вы просто сообщаете ей, какие свойства какого объекта отслеживать, и он делает все остальное. Вы можете настроить дерьмо из этого тоже, если хотите.
Библиотека называется 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].
Я пишу все это, потому что я думаю, что библиотека на высшем уровне, и я хочу высказать об этом.