持久化应用程序范围设置

本文关键字:设置 范围 应用程序 持久化 | 更新日期: 2023-09-27 17:53:13

我有一些windows窗体的应用程序级别设置,我可以使用Properties.Settings.Default.offset读取。我想保留这些设置,以便这些设置可以在以后使用。

根据SO的这篇文章,我尝试了以下方法-

Properties.Settings.Default["offset"] = this.offsetTextBox.Text;
Properties.Settings.Default.Save();

但是它没有保存值,因为我可以看到旧的值,即使改变它

持久化应用程序范围设置

根据文档,检查生成的代码和问题,"为什么我的应用程序设置没有被持久化?",应用程序范围的设置是只读的。

要更新应用程序范围的设置,您需要在app.config文件中更改适当的<appsettings>值:

  • 更新app.config system.net设置
  • http://chiragrdarji.wordpress.com/2008/09/25/how-to-change-appconfig-file-run-time-using-c/

请注意,对app.config文件的更改应该重新启动应用程序域,因此尝试更新自己的app.config可能与您期望的行为略有不同。

还请注意,这些更改将对bin目录中生成的*.exe.config文件进行更改,而不是对Visual Studio解决方案中的app.config文件进行更改。

另一件需要考虑的事情是:在部署的应用程序中,除非您以"提升的特权"运行,否则您也不太可能对app.config文件具有写访问权限。

如果你想要保存/更新这种类型的应用程序设置,从OS X书中取出一页并创建一个*.plist:

  1. 在应用程序启动时,在应用程序具有读写访问权限的已知位置检查您的设置XML文件。在OS X中,应用程序级别的设置位于/Library/Preferences;~/Library/Preferences .

    如果它不存在,创建它,用所讨论的设置的默认值填充它(这可以像从app.config复制<appsettings>元素一样简单)。

  2. 从该文件中读取应用程序级别设置

  3. FileSystemWatcher放在该文件上,以挂钩任何更改并更新设置。

好了。现在,你可以更新你的应用程序级别的设置,以你的心脏的内容。如果需要恢复,只需删除*.plist文件。