将值添加到app.config并检索它们

我需要在app.Config中插入键值对,如下所示:

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

当我在谷歌search时,我得到了下面的代码片段

 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在我使用.NET 2.0的System.Configuration命名空间中找不到。 如何以编程方式将键值对添加到app.Config中并检索它们?

你是否缺less对System.Configuration.dll的引用? ConfigurationManager类在那里。

编辑: System.Configuration命名空间有mscorlib.dll,system.dll和system.configuration.dll中的类。 您的项目总是包含mscorlib.dll和system.dll引用,但system.configuration.dll必须添加到大多数项目types,因为它不是在默认情况下…

这工作。

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

尝试添加一个引用到System.Configuration ,通过引用System命名空间得到一些configuration命名空间,添加对System.Configuration的引用应该允许你访问ConfigurationManager

我希望这个作品:

 System.Configuration.Configuration config= ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); config.AppSettings.Settings["Yourkey"].Value = "YourValue"; config.Save(ConfigurationSaveMode.Modified); 

抱歉迟到的答案,但可能是我的代码可能会帮助你。

我把3个button放在winform表面上。 button1和2将设置不同的值,button3将检索当前值。 所以当运行我的代码首先添加引用System.configuration

并点击第一个button,然后点击第三个button,看看已经设置了什么值。 下次再次点击第二和第三个button,再次看到更改后设置了什么值。

所以这里是代码。

 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); }