用 ConfigurationManager 修改配置后,ConfigurationManager 读取的不是最新值。
解决方法:
第一种:
ConfigurationManager.RefreshSection("appSettings"); //刷新 appSettings 节点 (立即生效) ConfigurationManager.RefreshSection("connectionString"); //刷新 connectionString 节点 (无法生效 —— 可能是 微软处理时,因为 LocalSqlServer 这个默认配置 而导致的疏忽)
第二种:
FieldInfo fieldInfo = typeof(ConfigurationManager).GetField("s_initState", BindingFlags.NonPublic | BindingFlags.Static); if (fieldInfo != null) fieldInfo.SetValue(null, ); //将配置文件 设置为: 未分析 状态, 配置文件 将会在下次读取 时 重新分析. //立即生效,而且效果 明显 —— 就喜欢这种 暴力做法。
参考了:https://www.shuzhiduo.com/A/MAzAK3jq59/。
标签:读取,配置文件,ConfigurationManager,appSettings,最新,BindingFlags,fieldInfo From: https://www.cnblogs.com/runliuv/p/17282554.html