我想在app.config的appSetting部分修改一个值。所以我写了,
Console.WriteLine(ConfigurationManager.AppSettings["name"]);
Console.Read();
Configuration config=ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
config.AppSettings.Settings["name"].Value = "raja";
config.Save(ConfigurationSaveMode.Modified);
ConfigurationManager.RefreshSection("appSettings");
Console.WriteLine(ConfigurationManager.AppSettings["name"]);
Console.Read();
在执行上述代码后,我验证了app.config "name“元素的值是否已更改。但没有变化。
我的代码出了什么问题?或者,有没有其他方法可以做到这一点?
发布于 2009-08-31 13:24:33
下面的代码适用于我:
Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
config.AppSettings.Settings["test"].Value = "blah";
config.Save(ConfigurationSaveMode.Modified);
ConfigurationManager.RefreshSection("appSettings");
注意:它不会更新解决方案项'app.config',但如果您使用F5运行它,则会更新bin/文件夹中的'.exe.config‘项。
发布于 2015-12-11 23:33:04
对Adis H的示例进行扩展,以包括null情况(在这个示例中得到了比特)
Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
if (config.AppSettings.Settings["HostName"] != null)
config.AppSettings.Settings["HostName"].Value = hostName;
else
config.AppSettings.Settings.Add("HostName", hostName);
config.Save(ConfigurationSaveMode.Modified);
ConfigurationManager.RefreshSection("appSettings");
发布于 2009-08-31 13:16:02
您必须手动更新app.config文件
// Load the app.config file
XmlDocument xml = new XmlDocument();
xml.Load(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile);
// Do whatever you need, like modifying the appSettings section
// Save the new setting
xml.Save(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile);
然后告诉您的应用程序重新加载您修改过的任何部分
ConfigurationManager.RefreshSection("appSettings");
https://stackoverflow.com/questions/1357240
复制相似问题