为什么在 'Settings.Default' 上使用字符串索引器来更改 属性 值不是 saved/persisted?

Why using string indexer on 'Settings.Default' to change a property value is not saved/persisted?

我有一个 .NET Framework 应用程序,我需要保存和加载 bool 变量的状态。我尝试使用 MyApp.Properties 库来做到这一点。这是我的保存代码:

        private static void ChangeBoolState()
        {
            warningMessageState = false;
            Settings.Default["warningMessageState"] = warningMessageState;
            Settings.Default.Save();
        }

在这里加载:

 warningMessageState = Convert.ToBoolean(Settings.Default["warningMessageState"]);

当我尝试使用此代码加载或保存此变量时,出现错误:

System.Configuration.SettingsPropertyNotFoundException: "Settings property 'warningMessageState' could not be found."

任何人都知道,我做错了什么?提前谢谢您!

  • 在项目菜单上单击属性
  • 在左侧点击设置
  • 出现类似这样的内容(或者可能是“此项目不包含设置文件,请单击此处创建一个”- 单击此处):
  • 确保网格包含一个名为 WarningMessageState 的 User Scoped bool(使用 pascal 大小写;它将以 class 属性)
  • 然后您可以使用如下代码:
Properties.Settings.Default.WarningMessageState = true;

Properties.Settings.Default.Save();

if(Properties.Settings.Default.WarningMessageState)
    MessageBox.Show("Warning!");