持久化应用程序范围设置
本文关键字:设置 范围 应用程序 持久化 | 更新日期: 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
:
-
在应用程序启动时,在应用程序具有读写访问权限的已知位置检查您的设置XML文件。在OS X中,应用程序级别的设置位于
/Library/Preferences
;~/Library/Preferences
.如果它不存在,创建它,用所讨论的设置的默认值填充它(这可以像从
app.config
复制<appsettings>
元素一样简单)。 -
从该文件中读取应用程序级别设置
-
将
FileSystemWatcher
放在该文件上,以挂钩任何更改并更新设置。
好了。现在,你可以更新你的应用程序级别的设置,以你的心脏的内容。如果需要恢复,只需删除*.plist
文件。