7

我已经阅读了很多诸如“您不应该使用自定义设置阻塞您的 app.config 文件”之类的声明。但是,我的印象是这正是文件的目的?

这真的只是一种偏好吗?或者通过使用与 app.config 文件相对的自定义 XML 文件是否有任何真正的好处(除了设置的分离)?如果您需要明确分离设置,使用自定义ConfigurationSection而不是选择自定义 XML 文件会更好吗?

我想在这里谈谈其他人对此的看法。

4

5 回答 5

5

看看Application Settings Architecture, app.config 是关于应用程序的配置,虽然这是一个相当笼统的术语.. 所以我建议你查看应用程序设置文件。

我不会在 app.config 中存储诸如“是否在启动时加载数据库”之类的设置。我宁愿为此使用诸如应用程序设置之类的替代存储,不要将应用程序配置与设置混淆,即使您可能想要这样做,也不要。app.config 应该对较低级别的事物进行配置,例如数据库连接、成员资格提供程序或任何其他应用程序批评信息。

于 2009-10-14T12:23:29.030 回答
5

以我的拙见,有些人倾向于在自定义配置部分处理程序上有点过火。

我倾向于仅在需要非常有条理的东西时才使用它们;那是由第 3 方使用/编写的(即我想对其进行一些奢侈的验证)。

我认为您可以很高兴地将 app.config/web.config 用于所有相关设置,并在很明显是应用程序的单独组件时使用单独的 XML 文件。

于 2009-10-14T12:26:16.743 回答
2

大多数设置往往属于以下三个阵营之一:

  1. 影响代码内部行为的技术设置,例如数据库连接字符串、数据文件路径、日志记录开关、错误处理开关等。
  2. 影响产品业务逻辑的业务设置,例如“是否允许用户访问 CRM 模块?”
  3. 用户特定的配置文件值,例如“是否允许此用户访问 CRM 模块?”。

类型 1 的自然位置在app.configorweb.config中,类型 2 和 3 的自然位置在数据库中。

于 2009-10-14T12:34:08.227 回答
1

App.Config 适用于特定于应用程序的配置:数据库路径就是一个很好的例子。其余的应该没有。

您可能想要做的一件事是创建特定于用户的文件,然后您可以使用将保存到独立存储中的自定义 xml。

于 2009-10-14T12:22:23.137 回答
1

在我看来,我认为 app.config 适合部署时设置,例如数据库的位置、IP 地址或关键数据文件的位置等。字体、颜色、行为偏好等用户设置应该放在您可以使用 Xml 序列化轻松创建和保存不同的文件。

于 2009-10-14T12:25:23.537 回答