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

Добавьте значения в app.config и извлеките их

Мне нужно вставить ключевые пары значений в app.Config следующим образом:

<configuration>
 <appSettings>
    <add key="Setting1" value="Value1" />
    <add key="Setting2" value="Value2" />
 </appSettings>
</configuration>

Когда я искал в google, я получил следующий фрагмент кода

System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); // Add an Application Setting.

config.AppSettings.Settings.Add("ModificationDate",
               DateTime.Now.ToLongTimeString() + " ");

// Save the changes in App.config file.

config.Save(ConfigurationSaveMode.Modified);

Вышеприведенный код не работает, поскольку ConfigurationManager не найден в пространстве имен System.Configuration. Я использую .NET 2.0. Как добавить пары ключ-значение в app.Config программно и получить их?

4b9b3361

Ответ 1

Вы не нашли ссылку на System.Configuration.dll? ConfigurationManager находится там.

EDIT: пространство имен System.Configuration имеет классы в файлах mscorlib.dll, system.dll и в файле system.configuration.dll. В вашем проекте всегда содержатся ссылки mscorlib.dll и system.dll, но файл system.configuration.dll должен быть добавлен к большинству типов проектов, поскольку он по умолчанию отсутствует...

Ответ 2

Это работает:

public static void AddValue(string key, string value)
{
    Configuration config = ConfigurationManager.OpenExeConfiguration(Application.ExecutablePath);
    config.AppSettings.Settings.Add(key, value);
    config.Save(ConfigurationSaveMode.Minimal);
}

Ответ 3

Попробуйте добавить ссылку на System.Configuration, вы получите некоторое пространство имен конфигурации путем ссылки на пространство имен System, добавив ссылку на System.Configuration, чтобы вы могли получить доступ к ConfigurationManager.

Ответ 4

Надеюсь, это сработает:

System.Configuration.Configuration config= ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);

config.AppSettings.Settings["Yourkey"].Value = "YourValue";
config.Save(ConfigurationSaveMode.Modified);

Ответ 5

Чтобы получить данные из App.config

Принимая во внимание, вы должны:

  1. Добавлено в список литературы → System.Configuration
  2. а также добавил это с помощью оператора → using System.Configuration;

Просто сделай это

string value1 = ConfigurationManager.AppSettings["Value1"];

В качестве альтернативы, вы можете сделать это в одну строку, если не хотите явно добавлять using System.Configuration;.

string value1 = System.Configuration.ConfigurationManager.AppSettings["Value1"]

Ответ 6

извините за поздний ответ, но мой код может помочь вам.

Я поместил 3 кнопки на поверхность winform. button1 & 2 установит другое значение, а button3 восстановит текущее значение. поэтому при запуске моего кода сначала добавьте ссылку System.configuration

и нажмите на первую кнопку, а затем нажмите на третью кнопку, чтобы увидеть, какое значение было установлено. в следующий раз снова нажмите на второй & 3-я кнопка, чтобы снова увидеть, какое значение было установлено после изменения.

так вот код.

using System.Configuration;

 private void button1_Click(object sender, EventArgs e)
{
    Configuration config = ConfigurationManager.OpenExeConfiguration(Application.ExecutablePath);
    config.AppSettings.Settings.Remove("DBServerName");
    config.AppSettings.Settings.Add("DBServerName", "FirstAddedValue1");
    config.Save(ConfigurationSaveMode.Modified);
}

private void button2_Click(object sender, EventArgs e)
{
    Configuration config = ConfigurationManager.OpenExeConfiguration(Application.ExecutablePath);
    config.AppSettings.Settings.Remove("DBServerName");
    config.AppSettings.Settings.Add("DBServerName", "SecondAddedValue1");
    config.Save(ConfigurationSaveMode.Modified);
}

private void button3_Click(object sender, EventArgs e)
{
    Configuration config = ConfigurationManager.OpenExeConfiguration(Application.ExecutablePath);
          MessageBox.Show(config.AppSettings.Settings["DBServerName"].Value);
}