【问题标题】:App.Config vs Custom XML fileApp.Config 与自定义 XML 文件
【发布时间】:2023-04-10 21:52:01
【问题描述】:

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

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

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

【问题讨论】:

    标签: app-config application-settings


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        【解决方案3】:

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

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

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

        【讨论】:

          【解决方案4】:

          App.Config 适用于特定于应用程序的配置:数据库路径就是一个很好的例子。剩下的应该不用了。

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

          【讨论】:

          • 我想问题是什么被认为是“特定于应用程序”。因为我假设您的应用程序所需的所有设置都是特定于应用程序的......
          【解决方案5】:

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

          【讨论】:

          • 您会考虑对 UI 消息等使用相同的解决方案吗?
          • 如果 UI 消息是用户直接配置的,那么可以确定。但是,如果您正在考虑语言翻译方面的 UI 消息,那么您应该查看附属程序集和 .NET 对本地化的支持。
          猜你喜欢
          • 2020-06-02
          • 2020-08-30
          • 2010-11-12
          • 2023-03-23
          • 1970-01-01
          • 2016-01-22
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多