Подтвердить что ты не робот

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 и при каких обстоятельствах следует выбирать между этими двумя?

4b9b3361

Ответ 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 и выше). Чтобы определить местоположение файла программно, см. этот пост.