【问题标题】:What's the preferred method for storing user settings in a .NET windows application?在 .NET windows 应用程序中存储用户设置的首选方法是什么?
【发布时间】:2009-06-03 18:41:43
【问题描述】:

请原谅我的无知,但我从未真正开发过 Windows 应用程序。您如何存储用户设置?嵌入式数据库是首选方法吗?

【问题讨论】:

标签: c# .net winforms


【解决方案1】:

我想你在找user settings:

.NET Framework 2.0 允许您 创建和访问的值 在应用程序之间持续存在 执行会话。这些值是 称为设置。设置可以 代表用户偏好,或 有价值的信息申请 需要使用。例如,您可能 创建一系列设置来存储 配色方案的用户偏好 的应用程序。或者你可以存储 指定一个连接字符串 您的应用程序使用的数据库。 设置允许你同时坚持 对其至关重要的信息 代码之外的应用程序,以及 创建存储文件的配置文件 个人用户的偏好。

【讨论】:

    【解决方案2】:

    这取决于什么样的设置。从嵌入式数据库(如 SQLite)到 XML 文件,再到注册表,有多种方法。

    • 如果设置很少,注册表通常是有意义的。
    • 如果设置比较复杂,需要手工编辑,可以使用 XML 文件或 JSON。
    • 如果设置很复杂且不需要手动编辑,SQLite、.NetBtree 或 BerkelyDB .NET 等嵌入式数据库是不错的选择。

    【讨论】:

    • 另一个考虑因素是版本控制;任何现实世界的应用程序都会随着它的发展而获得更多的设置。旧版本的应用程序应该容忍新版本的设置(忽略新添加的设置),新版本的应用程序应该容忍旧版本的设置文件(对缺少的参数使用合理的默认值)
    【解决方案3】:

    使用 Blane 的 Pegasus 库 (http://pegasus.codeplex.com/)。

    您可以使用他的 XmlSerializationHelper 类,它可以轻松地将对象转换为 XML,反之亦然。

    或者您可以使用独立存储(如果我不是新用户并且每个帖子限制为一个超链接,我会提供指向 MSDN 的链接)。如果你使用了IsolatedStorage,可以考虑使用Blane 的IsolatedStorageHashtable 类。

    【讨论】:

    • @Mike:他的东西很好,但我真的不想为如此简单的事情承担外部依赖。谢谢你。
    【解决方案4】:

    这完全取决于您正在构建的应用程序的大小。如果您在做一些简单的事情,比如“家庭购物清单”,您可以将设置存储在一个好的旧纯文本文件中。

    如果您要构建更大的东西,例如“同学通知器”,您可以使用 XML 文件或其他某种资源。

    对于任何更大的应用程序,您应该使用某种关系数据库来存储用户数据。

    【讨论】:

    • 正如其他人所发布的,.NET 2.0 设置甚至比文本文件更简单,因为没有右手到左手的代码要处理。
    猜你喜欢
    • 2011-01-15
    • 1970-01-01
    • 2010-09-06
    • 1970-01-01
    • 2011-10-16
    • 2010-10-21
    • 1970-01-01
    • 1970-01-01
    • 2011-05-21
    相关资源
    最近更新 更多