C# - 配置動態更新

生產中常常會遇到修改配置的狀況,可是又須要重啓應用程序,是否是有點小煩躁....
下面瞭解下在不重啓狀況下,實現配置更新實時生效html

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.htmlapp

相關文章
相關標籤/搜索