持久的应用程序范围设置

时间:2014-03-24 17:07:26

标签: c#

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

根据SO的this帖子,我尝试了以下内容 -

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

但它没有保存该值,因为即使在更改之后我也可以看到旧值。

1 个答案:

答案 0 :(得分:0)

根据文档,检查生成的代码和问题," Why are my application settings not getting persisted?",应用程序作用域设置是只读的。

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

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

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

需要考虑的另一件事是:在已部署的应用程序中,除非您使用&#34;提升权限运行,否则您也不太可能拥有对app.config文件的写入权限。

如果您想要保留/更新此类应用设置,请从OS X书中获取一个页面并创建*.plist

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

    如果它不存在,请创建它,使用相关设置的默认值填充它(这可能就像从<appsettings>复制app.config元素一样简单。

  2. 从该文件中读取您的应用级设置。

  3. 在该文件上放置FileSystemWatcher以挂钩所有更改并更新设置。

  4. 你去吧。现在,您可以将应用级设置更新为您心中的内容。如果您需要还原,您只需要清除*.plist文件。