Добавьте значения в 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 программно и получить их?
Ответы
Ответ 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
Принимая во внимание, вы должны:
- Добавлено в список литературы →
System.Configuration
- а также добавил это с помощью оператора →
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);
}