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