简体   繁体   English

在运行时更新配置文件

[英]Update config file during runtime

This is a piece of my code: 这是我的一部分代码:

 private void ProcessFile(object filename)
        {
            ConfigurationManager.RefreshSection("appSettings");
            ApplicationSettings.ReadSettings();

Method ReadSettings() read key from .config File. 方法ReadSettings()从.config文件读取key Work of this method finished. 此方法的工作完成了。 Ok, then I've updated .config file and want to get new values in next using of this method. 好的,然后我更新了.config文件,并希望在下次使用此方法时获取新值。 How can I do it? 我该怎么做? The main problem - I got old values from appSettings section. 主要问题-我从appSettings部分获得了旧值。

UPDATE UPDATE

public static int IncreaseSpeedValue { get; private set; }
public static int SilenceDuration { get; private set; }
public static double IncreaseVolume { get; private set; }
public static int VoiceFilter { get; private set; }
public static int SmoothValue { get; private set; }          
public static void ReadSettings()
{
    int tempSettingValue = 0;
    double tempSettingVolume = 0;
    int.TryParse(ConfigurationManager.AppSettings["IncreaseSpeedValue"], out tempSettingValue);
    IncreaseSpeedValue = tempSettingValue;
    tempSettingValue = 0;
    int.TryParse(ConfigurationManager.AppSettings["SilenceDuration"], out tempSettingValue);
    SilenceDuration = tempSettingValue;
    tempSettingValue = 0;
    double.TryParse(ConfigurationManager.AppSettings["IncreaseVolume"], out tempSettingVolume);
    IncreaseVolume = tempSettingVolume;
    tempSettingVolume = 0;
    int.TryParse(ConfigurationManager.AppSettings["VoiceFilter"], out tempSettingValue);
    VoiceFilter = tempSettingValue;
    tempSettingValue = 0;
    int.TryParse(ConfigurationManager.AppSettings["SmoothValue"], out tempSettingValue);
    SmoothValue = tempSettingValue;
    tempSettingValue = 0;
}     

If I recall it correctly, there's an issue with ApplicationSettings refresh when you debugging your code in VS. 如果我没记错的话,在VS中调试代码时ApplicationSettings刷新会出现问题。 Try launching .exe directly or switch to Release mode and check if the problem persists. 尝试直接启动.exe或切换到“释放”模式,然后检查问题是否仍然存在。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM