在c#中设置保存

Setting save in c#

我的 C# 设置有问题...

我在设置中有一个字符串,并将其命名为UserStr

当我调试我的程序时,我可以毫无问题地更改和使用它:

使用它:

var str=Properties.Setting.Default.Userstr;

改变它:

Properties.Setting.Default.UserStr="SomeTextbox.Text";
Properties.Setting.Default.Save();

而且效果很好...

但是当我运行调试文件夹中的调试程序时,UserStr的值是我首先设置的默认值...

我做错了什么吗?

试一试:

Properties.Settings.Default.Reload();

Am I doing anything wrong?

不,调试器就是这样工作的。您可能启用了 Visual Studio 托管进程(默认情况下启用)。设置管理器使用 .exe 作为存储设置的目录的键。

这样做的结果是您实际上有两个不同的设置文件。一个在你 运行 程序独立时使用,一个在你 运行 在调试器下运行程序时使用,因为在每种情况下不同的进程 .exe 实际上是 运行ning。

在许多情况下,您可以在没有托管过程的情况下生活。它可以在“调试”选项卡下的项目设置中禁用。取消选中标记为 "Enable the Visual Studio hosting process" 的复选框。如果这样做,那么即使在调试进程时,.exe 也将是您的实际程序,并且它将使用与程序独立使用时相同的设置文件。

就我个人而言,我会保持原样。我通常不觉得使用两个不同的设置文件有什么问题。我通常不会 运行 独立运行程序,直到大部分调试结束。

有关详细信息,请参阅 What is the purpose of vshost.exe file?