c# - 查看 Properties.Settings.Default 变量

标签 c# properties.settings

我正在尝试使用 Settings.settings 来定义/保留一些变量。为简洁起见,我设置了一个测试文件来演示我所看到的行为:

首先,我在 Settings.settings 中定义一个设置:

From the Settings.settings window (variableName

然后我有以下代码来测试更改变量名称:

    public Form1()
    {
        InitializeComponent();

        string newString = Properties.Settings.Default.variableName;
        Properties.Settings.Default.variableName = "This is a new string";
        Properties.Settings.Default.Save();
    }

第一次在调试器中运行上述代码,我从 Properties.Settings 中获取变量名称的当前值(我最初在 Settings.settings 窗口中设置的值)。正如预期的那样,newString 设置为“这是一个字符串”。好......

执行接下来的两行后,调试器显示变量名称更改为“这是一个新字符串”。好....

然后我再次通过调试器运行应用程序。我点击了字符串 newString 行,在执行之前,newString 是未定义的(当然)。好....

Undefined...not executed yet

一旦我执行...

string newString = Properties.Settings.Default.variableName;

...并且在随后执行代码时,variableName 的实际值被定义为“这是一个新字符串”(很好...正如预期的那样)。

然后我返回到 Settings.settings 窗口。变量名没有改变——它仍然是“这是一个字符串”。我什至关闭了 VSE 2012 并重新打开了该项目。 Settings.settings 永远不会改变。

新值存储在哪里?我已检查所有 .config 文件([appname].exe.config、[appname].vshost.exe.config、app.config 和 Settings.settings 文件)和新值“这是一个新值”字符串”在任何地方都找不到。

总之,我从代码中得到了我想要的结果,但除了检查调试器中 var 的值之外,我似乎无法在设计时查看结果。这不仅对我来说很奇怪,而且是不可能的。

我错过了什么/我没有在看什么?我完全希望变量名的值在 Settings.settings 窗口中发生变化,但它从来没有发生过变化。我在 StackOverflow/Google 上到处查找,但似乎找不到答案。

提前致谢......

最佳答案

您通过 Settings.settings 配置的原始值与可执行文件的程序集一起存储在 .config 文件中。除非您直接通过 Visual Studio 修改设置文件,否则这永远不会改变;它本质上是一个只读文件。

用户的自定义设置存储在用户配置文件内的单独配置文件中。该文件的位置取决于程序集的元数据。例如,在 Windows 7/Vista 上,该位置可能如下所示:

C:\Users\<user name>\AppData\Local\<company name>\<assembly name>\
   AssemblyName\<version>\user.config

如果您尚未在程序集元数据中自定义公司名称,则它可能默认为 Microsoft。另请注意,AppData 是一个隐藏文件夹,根据您的 View 设置,它可能在 Windows 资源管理器中不可见。

关于c# - 查看 Properties.Settings.Default 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16240528/

相关文章:

c# - 如何尝试/捕获所有异常

C# - 如何动态创建进度条

c# - 如何在我的程序中保存一组单选按钮的状态?

mvvm - MvvmCross Core 程序集中的设置?

c# - 将字符串数组从 C# 返回到 Inno Setup

c# - 调用者的许可与声明者的许可

c# - 如何创建前台任务?

c# - 寻找 Properties.Settings.Default 的快捷方式

.net - 如何更改Properties.Settings的默认路径