在 C# 中保存每个用户选项的最佳方法

Posted

技术标签:

【中文标题】在 C# 中保存每个用户选项的最佳方法【英文标题】:Best way to save per user options in C# 【发布时间】:2010-10-19 04:30:12 【问题描述】:

保存/加载设置的简单方法是什么?如果每个用户都有自己的设置集,我会更喜欢它。

【问题讨论】:

【参考方案1】:

如果这是一个桌面应用程序,存储应用程序和/或用户特定设置的最佳方式是使用内置方法。 Using Settings in C#

编辑

Using Settings in C# Visual Studio 2010

【讨论】:

是的,是的,是的!请不要使用注册表! +1 正确答案 +1 Jon B 评论 +1 @acidzombie24 评论 :)【参考方案2】:

这在很大程度上取决于应用程序的类型。

如果这是一个桌面应用程序,您可以将信息保存到用户区域的注册表中。或进入磁盘上的用户目录。如果这是一个 Web 或服务器应用程序,您需要将其存储到由用户键入的数据库中,或者存储到为每个用户命名的磁盘文件中。

由于您提到选项,似乎客户端路径更有可能。

【讨论】:

【参考方案3】:

ConfigurationManager 运行良好(桌面应用程序)。本质上,您正在使用 app.config xml 文件来保存设置。对于大多数基本用途,只需编辑 app.config。为您要保存的每个设置添加一个键值对...然后访问它,只需执行 ConfigurationManager.get..["yourKey"] 它将返回设置。设置几乎相同。

【讨论】:

【参考方案4】:

在 .Net 应用程序中,使用 Visual Studio 中的内置设置选项创建这样的设置 - 值保存在配置文件中,但 VS 为您提供了一个很好的界面来创建它们,并提供了一个 .Net 类来访问它们强类型的方式。您可以通过这种方式创建用户特定设置或应用特定设置。

要创建设置文件,请双击“属性”文件夹,然后选择“设置”选项卡,然后单击链接以创建“settings.settings”文件(是的,好名字!)。完成此操作后,您将看到存储在 app.config 中的实际设置,以及用于获取这些设置的自动生成代码位于 Settings.designer.cs 中。

【讨论】:

【参考方案5】:

当您说“每个用户都有自己的一组设置”时,您是指同事通过网络共享的应用程序还是共享计算机上的应用程序?

就个人而言,我会选择设置文件路径。你可以使用注册表,但这让我很怀疑。 Windows 中有一些地方(假设您在 Windows 上)可以将用户数据永久存储一天,您需要做的就是写信给它们。如果您使用的是 Vista,则可能无法写入注册表,除非您希望 UAC 提示您的用户。

如果您的应用已经使用某种 SQL 后端,请使用它。制作一个设置表或一个键/值包并将其存储在那里。将其序列化为对象,反之亦然,您应该有一个版本 1 的设置管理器。

查看ConfigurationManager 和SpecialFolders,这应该可以帮助您入门。

【讨论】:

以上是关于在 C# 中保存每个用户选项的最佳方法的主要内容,如果未能解决你的问题,请参考以下文章

Visual Studio 2010 C# 表单项目 - 拖放 - 最佳方法?

使用 C# 在 oracle 数据库中更新多行的最佳方法

最佳实践:我应该如何在 C#(格式/类型)中存储设置?

如何在基于选项卡的应用程序中检查用户机密?

将临时数据保存为后端面板上的子选项的最佳做法是啥?

在 JSF 中向 selectOneMenu 添加“未选择”选项的最佳方法