【问题标题】:.NET Application/User Settings Issues.NET 应用程序/用户设置问题
【发布时间】:2010-12-23 17:12:01
【问题描述】:

有人可以向我解释一下应用程序和用户设置,以及它们之间的区别吗?我有一个只有一个人会使用的 C# 应用程序。用户可以在程序中设置首选项,我使用用户范围的设置实现了这些首选项。我的印象是用户范围的设置可以在运行时读取和写入,它们就是这样。但他们没有坚持。一旦应用程序关闭并重新打开,噗,所有用户的设置都去了。

应用程序设置似乎更适合我正在做的事情,除了它们不能在运行时进行操作。

所以...

问题 #1: 用户范围的设置是否应该持续存在?

问题 #2: 用户和应用程序范围之间的区别是否在于应用程序不能在运行时更改,但用户可以?

问题 #3:如果我不能使用设置,或者在这种情况下不应该使用,那么保存首选项的替代建议是什么?

【问题讨论】:

标签: c# .net application-settings settings


【解决方案1】:

有一些很好的信息here

  1. 是的。确保您在某个时候对它们调用 Save() 函数!通常使用Settings.Default.Save()
  2. 是的,但不是。我相信从技术上讲,您可以在运行时更改和保留应用程序设置,但实际上并非如此,因为大多数部署机制会阻止这一点,因为您的安装文件夹应该是只读的。
  3. 不适用。使用设置!你在正确的轨道上。如果您发现需要保留大量信息,那么您可能需要查看更丰富的数据存储 - 例如XML、SQL、SQL-CE 等。

【讨论】:

  • 没有调用保存。呸!我可以在应用程序关闭之前保存,还是在进行更改时必须保存?也许一个 onClosing 事件保存设置?
  • 我会保存 OnChange,以防您的应用崩溃。与 VS.NET 不同,它崩溃时不会保存我的设置咳咳。
  • 代码 - 是的,您可以使用表单的 Closing 事件保存设置。不要忘记保存这些设置! Properties.Settings.Default.Save(); 之类的东西应该可以解决问题。
  • 我倾向于将我的用户设置包装为与它们相关的类的(静态)属性。这样,在 setter 中,它可以立即调用 Save,但如果需要,也可以进行验证。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-15
  • 2012-03-04
  • 2010-10-16
  • 1970-01-01
相关资源
最近更新 更多