.NET应用程序/用户设置问题

3
请问有人能给我解释一下应用程序设置和用户设置的区别吗?我有一个只有一个人使用的C#应用程序。用户可以在程序内设置偏好,我使用了用户范围的设置来实现这些偏好。我原本以为用户范围的设置可以在运行时读取和写入,它们确实可以。但是它们无法持久化。一旦应用程序关闭并重新打开,所有用户的设置就会消失。
应用程序设置似乎更适合我的需求,但它们不能在运行时进行操作。
所以... 问题1: 用户范围的设置是否应该持久化? 问题2: 用户和应用程序范围的区别是应用程序不能在运行时更改,而用户可以吗? 问题3: 如果我不能或不应该使用设置,那么保存偏好的替代建议是什么?

听起来像是微软认证考试的问题;-) - Uwe Keim
请参考以下链接:http://stackoverflow.com/questions/4514929/save-application-preferences-registry-file - John Saunders
1个回答

2

这里有一些有用的信息

  1. 是的。确保在某个时刻调用Save()函数!通常使用Settings.Default.Save()
  2. 是,但也不完全是。我相信你可以在运行时更改和持久化应用程序设置,但实际上大多数部署机制会阻止这样做,因为你的安装文件夹应该是只读的。
  3. 无关。使用设置吧!你走在正确的道路上。如果你发现需要持久化大量信息,那么你可能需要考虑更丰富的数据存储方式 - 例如XML、SQL、SQL-CE等。

没有调用保存。哎呀!在应用程序关闭前可以保存吗,还是必须在进行更改时保存?也许一个onClosing事件可以保存设置? - CODe
我会保存OnChange,以防您的应用程序崩溃。不像VS.NET在崩溃时不保存我的设置。 - mxmissile
是的,你可以使用窗体的“Closing”事件保存设置。不要忘记保存这些设置!类似于“Properties.Settings.Default.Save();”这样的语句就可以解决问题了。 - anon271334
我倾向于将用户设置作为(静态)属性包装在它们相关的类上。这样在setter中,它可以立即调用Save,但也可以进行必要的验证。 - Reddog

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接