我正在尝试使用 Settings.settings 来定义/保留一些变量。为简洁起见,我设置了一个测试文件来演示我看到的行为:
首先,我在 Settings.settings 中定义了一个设置:
然后我有以下代码来测试更改变量名:
public Form1()
{
InitializeComponent();
string newString = Properties.Settings.Default.variableName;
Properties.Settings.Default.variableName = "This is a new string";
Properties.Settings.Default.Save();
}
第一次在调试器中运行上述代码,我从 Properties.Settings 中获取 variableName 的当前值(我最初在 Settings.settings 窗口中设置的值)。正如预期的那样,newString 设置为“这是一个字符串”。好的.....
执行接下来的两行后,调试器显示 variableName 更改为“This is a new string”。好的....
然后我再次通过调试器运行应用程序。我点击了字符串 newString 行,在执行之前, newString 是未定义的(当然)。好的....
一旦我执行...
string newString = Properties.Settings.Default.variableName;
...并且在代码的后续执行中,variableName 的实际值被定义为“这是一个新字符串”(好......正如预期的那样)。
然后我回到 Settings.settings 窗口。variableName 没有改变 - 它仍然是“这是一个字符串”。我什至关闭了 VSE 2012 并重新打开了该项目。Settings.settings 永远不会改变。
新值存储在哪里?我检查了所有 .config 文件([appname].exe.config、[appname].vshost.exe.config、app.config 和 Settings.settings 文件)和新值,“这是一个新的字符串”在任何地方都找不到。
总之,我从代码中得到了我想要的结果,但除了检查调试器中 var 的值之外,我似乎无法在设计时查看结果。这似乎不仅对我来说很奇怪,而且是不可能的。
我错过了什么/我没有在哪里寻找?我完全希望 variableName 的值在 Settings.settings 窗口中发生变化,但它永远不会。我在 StackOverflow/Google 上到处找,似乎找不到答案。
提前致谢....