App.Config键不修改

本文关键字:修改 Config App | 更新日期: 2023-09-27 18:17:13

我在SatackOverFlow上找到了这两种方法。这两种方法对我都不起作用。先看一下我的代码:

private void button1_Click(object sender, EventArgs e)
{
       Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
       KeyValueConfigurationCollection settings = config.AppSettings.Settings;
       settings.Remove("Valor1");
       settings.Add("Valor1", "NewValue");
       //save the file
       config.Save(ConfigurationSaveMode.Modified);
       //reload the section you modified            ConfigurationManager.RefreshSection(config.AppSettings.SectionInformation.Name);
}

:

private void button1_Click(object sender, EventArgs e)
{
            Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
            KeyValueConfigurationCollection settings = config.AppSettings.Settings;
            //Update SaveBeforeExit
            settings["Valor1"].Value = "NewValue";
            //save the file
            config.Save(ConfigurationSaveMode.Modified);
            //reload the section you modified
            ConfigurationManager.RefreshSection(config.AppSettings.SectionInformation.Name);
}  

我想要什么
我想在运行时更改App.Config的值。

为什么我想要这个?
我正在使用RFID卡,我需要能够在运行时更改一些配置。这些配置可能因客户端而异。

怎么了
好吧,这两个方法,它确实改变了值在那个时候,但当我重新调试应用程序,值是相同的它是改变之前。

为什么?我能做点什么吗?

即使我尝试REMOVEADD一个键,它仍然是相同的值。所以我不能删除一个键编程吗?

App.Config键不修改

为什么不使用settings而不是app.config store呢?它将有一个初始值,但一旦你保存了一个值,它将保留/重新加载该值,即使在调试会话中也是如此。

在你的应用中你可以做

var s = new Settings();
s.Setting = "set to new value";
s.Save();

您可以通过单击左侧的Settings选项卡从VS2010的项目属性窗口中添加设置。

设置文件用来生成一个cs类,以ApplicationSettingBase为基类。

internal sealed partial class Settings : ApplicationSettingsBase {
    private static Settings defaultInstance = 
        ((Settings)(ApplicationSettingsBase.Synchronized(
        new Settings())));
    public static Settings Default {
        get {
            return defaultInstance;
        }
    }
    [UserScopedSettingAttribute()]
    [DebuggerNonUserCode()]
    [DefaultSettingValueAttribute("if no user setting is present")]
    public string Setting {
        get {
            return ((string)(this["Setting"]));
        }
        set {
            this["Setting"] = value;
        }
    }
}

如果您成功地更改了配置文件,那么您的问题是应用程序没有循环并拉入新的配置。您可以终止正在运行的实例并重新启动吗?