App.config: Пользователь и область применения
Я добавил файл App.config в свой проект.
Я создал два параметра в меню "Проект" > "Свойства" > "Параметры" -
![введите описание изображения здесь]()
Я заметил, что когда я добавляю параметр, я могу определить область действия как User
или Application
. -
Если я определяю установку как User
, она переходит в раздел userSettings
,
если я определяю установку как Application
, она переходит в раздел applicationSettings
App.config
<configuration>
<userSettings>
<DemoApp.Properties.Settings>
<setting name="MySetting1" serializeAs="String">
<value>Value1</value>
</setting>
</DemoApp.Properties.Settings>
</userSettings>
<applicationSettings>
<DemoApp.Properties.Settings>
<setting name="MySetting2" serializeAs="String">
<value>Value2</value>
</setting>
</DemoApp.Properties.Settings>
</applicationSettings>
</configuration>
Но к этим настройкам можно обращаться так же, как от .cs
-
код
string mySetting1 = DemoApp.Properties.Settings.Default.MySetting1;
string mySetting2 = DemoApp.Properties.Settings.Default.MySetting2;
В чем разница между областями User
и Application
и при каких обстоятельствах следует выбирать между этими двумя?
Ответы
Ответ 1
В принципе, настройки приложения не могут быть изменены во время работы программы, а пользовательские настройки могут. Эти пользовательские настройки затем должны быть сохранены, чтобы пользователь получил знакомый опыт, когда он запускает приложение далее.
Изменить:
Например, вы можете написать свое приложение с разными модулями и убедиться, что ваш основной модуль использует правильную версию вашего модуля безопасности. Для этого вы должны установить настройку области приложения, например:
SecurityModuleVersion string Application v1.21
Когда-то позже, когда вы реорганизуете модуль безопасности, вы можете изменить значение v1.22 при развертывании для обеспечения правильной безопасности в процессе реализации
С другой стороны, если ваше приложение имеет разные "скины" с изменениями цвета, изменениями шрифтов и т.д., вы можете настроить пользователя так, как показано ниже:
ApplicationSkin string User DefaultSkin
Затем, когда Мишель меняет кожу, она предпочитает, приложение запоминает ее. Теперь свойства могут выглядеть так:
ApplicationSkin string User HelloKittySkin
Ответ 2
Параметры области приложения доступны только для чтения и могут быть изменены только во время разработки или путем изменения файла .exe.config между сеансами приложений. Однако параметры пользовательской области можно записать во время выполнения, так же, как вы изменили бы значение свойства. Новое значение сохраняется в течение всего сеанса приложения. Вы можете сохранить изменения пользовательских настроек между сеансами приложений, вызвав метод Settings.Save.
Источник на msdn: Использование настроек в С#
Пользовательские настройки обычно используются для сохранения пользовательских настроек (например, предпочтений уведомлений о приложении и т.д.). Параметры приложения обычно бывают для таких элементов, как ключи API и т.д.
Как отмечалось в @kmote, когда пользовательские настройки изменяются и сохраняются во время выполнения (через settings.Save()
), они будут записаны в папку в хранилище профилей пользователей (обычно C:\Users\ Имя пользователя\AppData\Local\ AppName в Windows 7 и выше). Чтобы определить местоположение файла программно, см. этот пост.