我使用C#.NET 2.0的Windows应用程序。
和我使用的app.config为我的应用程序设置。
但在AppSettings的变化并不反映运行时,它需要申请重新启动。
我怎样才能避免它。
这里是我的代码片段我用来读取和写入的应用程序设置。
我读这样的设置
string temp = ConfigurationManager.AppSettings.Get(key);
我更新这样的值,其中节点是当前配置/节点的appSettings
node.Attributes["value"].Value = value;
xmlDoc.Save(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile);
你可以尝试调用
ConfigurationManager.RefreshSection("appSettings")
刷新从磁盘上的文件的appSettings部分。 一旦他们被刷新,你应该能够读取新的值。
我刚刚测试了这一点,它确实工作。
或者,你可以创建一个单独的“选项”来保存到您的应用程序设置和执行你读你/写。 加载后,改变的.config不需要重装,你只需设置的单属性,并打电话给你.Save()方法。
你的设置中的“运行”版本是单身,没有必要从磁盘中读取。
不使用ConfigurationManager中读取设置,而是使用:
System.Configuration.ConfigurationManager.OpenExeConfiguration(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile).AppSettings.Settings["value"];
ConfigurationManager.RefreshSection("appSettings");
作品!!
但要小心,如果我们在调试模式下,配置文件可以被称为xxxxx.vshost.exe.config,其中xxxxx是您的项目名称。