在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?。
我的 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?。