【问题标题】:Setting save in c#在c#中设置保存
【发布时间】:2023-03-27 19:16:01
【问题描述】:

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

我在设置中有一个字符串,叫它UserStr

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

使用它:

var str=Properties.Setting.Default.Userstr;

改变它:

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

而且效果很好……

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

我做错了什么吗?

【问题讨论】:

    标签: c# setting


    【解决方案1】:

    我做错了什么吗?

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

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

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

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

    更多详情请见What is the purpose of vshost.exe file?

    【讨论】:

      【解决方案2】:

      试试吧:

      Properties.Settings.Default.Reload();
      

      【讨论】:

      • 我应该在哪里使用这些?
      • 在 Properties.Setting.Default.Save();之后
      猜你喜欢
      • 2013-05-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-01
      • 1970-01-01
      • 2012-06-29
      • 2012-12-15
      相关资源
      最近更新 更多