AppSettings получает значение из файла .config


246 принят

Это работает для меня:

string value = System.Configuration.ConfigurationManager.AppSettings[key];

38 ов

Ответ, который дал dtsg:

string filePath = ConfigurationManager.AppSettings["ClientsFilePath"];

НО, вам нужно добавить ссылку на сборку

Конфигурация системы

Перейдите в Обозреватель решений и щелкните правой кнопкой мыши ссылку Ссылки и выберите Добавить ссылку . Перейдите на вкладку « Ассемблемы » и выполните поиск конфигурации .

Справочный менеджер

Вот пример моего App.config :

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <startup> 
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
    </startup>
  <appSettings>
    <add key="AdminName" value="My Name"/>
    <add key="AdminEMail" value="MyEMailAddress"/>
  </appSettings>
</configuration>

Который вы можете получить следующим образом:

string adminName = ConfigurationManager.AppSettings["AdminName"];

19 ов

Дайте это:

string filePath = ConfigurationManager.AppSettings["ClientsFilePath"];

10

Чтение из конфигурации:

Вам нужно будет добавить ссылку на Config

  1. Откройте «Свойства» в вашем проекте
  2. Перейдите на вкладку «Настройки»
  3. Добавьте «Имя» и «Значение»
  4. Получите значение с помощью следующего кода:
string value = Properties.Settings.Default.keyname;

Сохранить в настройках:

Properties.Settings.Default.keyName = value;
Properties.Settings.Default.Save();

3

Я использую:

    ExeConfigurationFileMap configMap = new ExeConfigurationFileMap();
    //configMap.ExeConfigFilename = @"d:	estjustAConfigFile.config.whateverYouLikeExtension";
    configMap.ExeConfigFilename = AppDomain.CurrentDomain.BaseDirectory + ServiceConstants.FILE_SETTING;
    Configuration config = ConfigurationManager.OpenMappedExeConfiguration(configMap, ConfigurationUserLevel.None);
    value1 = System.Configuration.ConfigurationManager.AppSettings["NewKey0"];
    value2 = config.AppSettings.Settings["NewKey0"].Value;
    value3 = ConfigurationManager.AppSettings["NewKey0"];

Где value1 = ... и value3 = ... дает значение null и value2 = ... работает

Затем я решил заменить внутренний app.config следующим:

// Note works in service but not in wpf
AppDomain.CurrentDomain.SetData("APP_CONFIG_FILE", @"d:	estjustAConfigFile.config.whateverYouLikeExtension");
ConfigurationManager.RefreshSection("appSettings");

string value = ConfigurationManager.AppSettings["NewKey0"];

Использование VS2012 .net 4

C # ,. сеть, AppSettings, ConfigurationManager,

c#,.net,appsettings,configurationmanager,

119

Ответов: 12


246 принят

Это работает для меня:

string value = System.Configuration.ConfigurationManager.AppSettings[key];

38 ов

Ответ, который дал dtsg:

string filePath = ConfigurationManager.AppSettings["ClientsFilePath"];

НО, вам нужно добавить ссылку на сборку

Конфигурация системы

Перейдите в Обозреватель решений и щелкните правой кнопкой мыши ссылку Ссылки и выберите Добавить ссылку . Перейдите на вкладку « Ассемблемы » и выполните поиск конфигурации .

Справочный менеджер

Вот пример моего App.config :

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <startup> 
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
    </startup>
  <appSettings>
    <add key="AdminName" value="My Name"/>
    <add key="AdminEMail" value="MyEMailAddress"/>
  </appSettings>
</configuration>

Который вы можете получить следующим образом:

string adminName = ConfigurationManager.AppSettings["AdminName"];

19 ов

Дайте это:

string filePath = ConfigurationManager.AppSettings["ClientsFilePath"];

10

Чтение из конфигурации:

Вам нужно будет добавить ссылку на Config

  1. Откройте «Свойства» в вашем проекте
  2. Перейдите на вкладку «Настройки»
  3. Добавьте «Имя» и «Значение»
  4. Получите значение с помощью следующего кода:
string value = Properties.Settings.Default.keyname;

Сохранить в настройках:

Properties.Settings.Default.keyName = value;
Properties.Settings.Default.Save();

3

Я использую:

    ExeConfigurationFileMap configMap = new ExeConfigurationFileMap();
    //configMap.ExeConfigFilename = @"d:	estjustAConfigFile.config.whateverYouLikeExtension";
    configMap.ExeConfigFilename = AppDomain.CurrentDomain.BaseDirectory + ServiceConstants.FILE_SETTING;
    Configuration config = ConfigurationManager.OpenMappedExeConfiguration(configMap, ConfigurationUserLevel.None);
    value1 = System.Configuration.ConfigurationManager.AppSettings["NewKey0"];
    value2 = config.AppSettings.Settings["NewKey0"].Value;
    value3 = ConfigurationManager.AppSettings["NewKey0"];

Где value1 = ... и value3 = ... дает значение null и value2 = ... работает

Затем я решил заменить внутренний app.config следующим:

// Note works in service but not in wpf
AppDomain.CurrentDomain.SetData("APP_CONFIG_FILE", @"d:	estjustAConfigFile.config.whateverYouLikeExtension");
ConfigurationManager.RefreshSection("appSettings");

string value = ConfigurationManager.AppSettings["NewKey0"];

Использование VS2012 .net 4

C # ,. сеть, AppSettings, ConfigurationManager,