WPF: Использование файла настроек

Давным-давно я подключал в один из проектов файл настроек для приложения. Сейчас мне снова потребовалось использовать функционал для работы с файлом настроек, но я уже половину подзабыл и пришлось заново копать инет…
В прошлый раз я не уделил этому моменту внимание, но сейчас прежде всего для себя отмечу, что это что-то вроде файла с дефолтовыми настройками.

При использовании кнопки Create or open application settings, откроется окошко с интерфейсом для создания настройки, там же можно присвоить ей значение, всё это сохранится в файл настроек (текущего проекта, а не экзешника):
«C:\Users\Denis\Documents\GitHub\SingleInstanceApp\Properties\Settings.settings«
Итак, я создал две настройки — одна булевая DebugMode, другая строковая DebugLogName — путь к лог файлу.
Поскольку это дефолтовые настройки, то приложение их может прочитать, например так:

App.xaml.cs
Debug.WriteLine($"Settings.Default.DebugMode: {Settings.Default.DebugMode}");
Debug.WriteLine($"Settings.Default.DebugLogName: {Settings.Default.DebugLogName}");

Если мы захотим их изменить и сохранить, то сделаем это так:

Settings.Default.DebugLogName = "TestDebugLog2.txt";
Settings.Default.Save();

Как видно из кода, мы изменили значение настройки, а затем сохранили её. Напомню, что читали мы дефолтовые настройки из файла Settings.settings, но сохраняются они уже в файл профиля текущего пользователя (того, кто запускал приложение). На этот раз данные сохраняются в файл user.config. Причём только те данные, которые мы изменяли. Полный путь к файлу у меня такой:
C:\Users\Denis\AppData\Local\SingleInstanceApp\SingleInstanceApp_Url_trgwvqhn1e1bxfrb2hbrad45vankk4qt\1.0.0.0\user.config

Если вы измените данные этого файла настроек (settings.settings) через графический интерфейс или напрямую в файле, то при запуске программы они уже не прочитаются! Чтобы приложение «увидело» изменённые данные файла настроек, нужно править файл user.config, либо удалять его, чтобы был создан новый!

 



Подписаться
Уведомление о
guest
0 Комментарий
Inline Feedbacks
View all comments