在c#中设置保存

时间:2016-08-21 17:56:34

标签: c# setting

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

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

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

使用它:

var str=Properties.Setting.Default.Userstr;

改变它:

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

它工作正常......

但是当我从调试文件夹运行调试程序时,UserStr的值是我在第一时间设置的默认值...

我做错了吗?

2 个答案:

答案 0 :(得分:1)

  

我做错了吗?

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

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

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

就个人而言,我会保留原样。我通常不会发现使用两个不同的设置文件是个问题。我通常不会独立运行该程序,直到大部分时间都在进行调试。

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

答案 1 :(得分:0)

试试吧:

Properties.Settings.Default.Reload();