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, либо удалять его, чтобы был создан новый!

 



Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *