将值添加到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); }