首页 > Windows开发 > 详细

C# - 配置动态更新

时间:2019-07-25 20:17:15      阅读:111      评论:0      收藏:0      [点我收藏+]

生产中经常会遇到修改配置的情况,但是又需要重启应用程序,是不是有点小烦躁....
下面了解下在不重启情况下,实现配置更新实时生效

public static void SetConfig(string key, string value)
{
    Configuration configuration = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
    if (configuration.AppSettings.Settings[key] != null) {
        configuration.AppSettings.Settings[key].Value = value;
    }else {
        configuration.AppSettings.Settings.Add(key,value);
    }
    configuration.Save(ConfigurationSaveMode.Modified);
    ConfigurationManager.RefreshSection("appSettings");//节点刷新
}

出于性能考虑,对ConfigurationManager采用缓存策略,若要读取新值,务必调用ConfigurationManager的RefreshSection刷新,强制下次检索时从磁盘重新读取。具体参见:https://www.xuebuyuan.com/36381.html
注意,为准确获取应用程序配置文件建议使用

string assemblyCfgFile = Assembly.GetEntryAssembly().Location;
string appDomainCfgFile = AppDomain.CurrentDomain.SetupInformation.ConfigurationFile;

否则调试时程序使用的是 xxx.vshost.exe和xxx.vshost.exe.config
另外一种方法是利用反射,具体参见:https://www.cnblogs.com/shuxiaolong/p/20160907_1432.html

C# - 配置动态更新

原文:https://www.cnblogs.com/wjcx-sqh/p/11246416.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!