app.config не обновляется, когда я использую configmanager

У меня есть эти фрагменты кода:

string theme = ConfigurationManager.AppSettings["Theme"];


private void ChangeTheme(string Name)
    {
        if(Name=="Light")
        {
            Form1.ActiveForm.BackColor = System.Drawing.Color.White;
            Form.ActiveForm.ForeColor = System.Drawing.Color.Black;
        }
        if (Name == "Dark")
        {
            Form1.ActiveForm.BackColor = System.Drawing.Color.Black;
            Form.ActiveForm.ForeColor = System.Drawing.Color.DarkOrange;
        }
        Configuration cfg = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
        cfg.AppSettings.Settings["Theme"].Value = Name;
        cfg.Save(ConfigurationSaveMode.Modified);
        ConfigurationManager.RefreshSection("appSettings");
    }

Мой app.config:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <appSettings>
    <add key="Volume" value="7"/>
    <add key="Keyval" value="X"/>
    <add key="Theme" value="Light"/>
  </appSettings>
</configuration>

По сути, когда я нажимаю переключатели, он меняет тему и отправляет строку в changetheme(), но она не обновляется в app.config.


person dvs    schedule 01.04.2016    source источник
comment
Возможный дубликат Как изменить мой App.exe.config ключи во время выполнения?   -  person Igor    schedule 01.04.2016
comment
Возможный дубликат stackoverflow.com/questions/11149556/app-config-change -значение   -  person David Oesterreich    schedule 01.04.2016
comment
Почему вы не используете Settings.settings ?   -  person Reza Aghaei    schedule 01.04.2016


Ответы (2)


Вы запускаете его в отладке?

Вероятно, вы смотрите не тот файл. При отладке Visual Studio использует файл конфигурации из bin\Debug, поэтому он не будет обновлять App.config из решения.

person Alan Klimowski    schedule 01.04.2016

Вместо использования == для сравнения я бы использовал метод String Equals:

Name.Equals("Light")

Хотя я готов поспорить, что это не проблема, это хорошая практика, и, возможно, вам повезет, и это проблема.

person user640118    schedule 01.04.2016