一尘不染

ConfigurationManager不保存设置

c#

这是我正在使用的代码:

private void SaveConfiguration()
{
    if (txtUsername.Text != "" && txtPassword.Text != "")
    {
        ConfigurationManager.AppSettings["Username"] = txtUsername.Text;
        ConfigurationManager.AppSettings["Password"] = txtPassword.Text;

        MessageBox.Show("Su configuracion guardo exitosamente.", "Exito!");
        this.Close();
    }
    else
    {
        MessageBox.Show("Por favor lleno los campos.", "Error.");
    }
}

现在,设置将保留下来,但是当我关闭应用程序并按F5键再次运行它时,这些值将恢复为在app.config文件中键入的值。有什么建议么?


阅读 329

收藏
2020-05-19

共1个答案

一尘不染

我认为您应该调用Save方法

ConfigurationManager.Save(ConfigurationSaveMode.Modified);
ConfigurationManager.RefreshSection("appSettings");

编辑

为了能够保存,您必须使用OpenExeConfiguration方法返回的配置对象

//Create the object
Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);

//make changes
config.AppSettings.Settings["Username"].Value = txtUsername.Text;
config.AppSettings.Settings["Password"].Value = txtPassword.Text;

//save to apply changes
config.Save(ConfigurationSaveMode.Modified);
ConfigurationManager.RefreshSection("appSettings");

此处更多参考ConfigurationManager类

2020-05-19