【发布时间】:2016-07-07 18:49:00
【问题描述】:
我第一次尝试在 C# WPF 项目中使用 properties.settings。
我有这个代码:
Settings.Default.comPort = "";
Settings.Default.baudRate = 9600;
Settings.Default.startUp = false;
Settings.Default.taskBar = true;
Settings.Default.desktopNotif = false;
Settings.Default.reset = false;
Settings.Default.Save();
但它不起作用,设置也没有保存。所以我添加了这一行
Console.WriteLine("test");
在那部分之后,检查它是否通过代码,并且执行良好。
所以它似乎只是跳过那些行而不执行甚至抛出任何异常。
【问题讨论】:
-
你怎么知道他们没有得救? Which file are you looking at? this thread 会回答你的问题吗?
-
您在哪里检查了更改?
Default表示默认,它们是存储在您的配置文件中的初始值,不是保存在用户配置文件中的值。或者您尝试更改未保存的应用程序范围属性 -
我用了两种方法来测试它们是否被保存。首先,我注释掉了这些行并尝试读取该值,但它为空。其次,我检查了 app.config 文件,它包含字段但值为 null
-
@Amir 没有测试任何东西。如果您尝试更改应用程序值,则无论如何都不会保存任何内容。用户范围的值存储在用户的 AppData\AppName 文件夹中
-
你检查过 AppData 文件夹吗?不要假设这样的基本功能存在错误。人们早就注意到了。您需要隔离实际发生的情况。例如,如果您正在调试应用程序,则每次检测到更改时可能会清除设置。如果您添加/删除/更改设置,您需要调用
Upgrade来读取旧设置。否则你的代码会在尝试读取旧的、不兼容的值时崩溃
标签: c# wpf app-config properties.settings