gpt4 book ai didi

c# - 更换配置框架,寻找替代方案

转载 作者:太空狗 更新时间:2023-10-29 23:25:23 34 4
gpt4 key购买 nike

关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。












想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。

6年前关闭。




Improve this question




几年来,我一直在使用以下本土配置框架来管理我的项目配置:

  • 第一个模仿 Java 的 .properties文件(一堆支持集合的 supergroup.subgroup.property=value 行)并且在许多情况下都可以正常工作(我发现它最适合小型应用程序)。这个适用于非常简单的配置
  • 秒基于 DataContractSerializer (以及可选的 XmlSerializer ),它允许第一个的所有功能以及 XML 的所有特权和更少的管道使其工作。这个很好,但是如果没有一个明确的 UI 来管理它是不切实际且繁琐的,以减轻教最终用户修改 XML 的麻烦。

  • 现有的两个框架都可以毫无问题地与 POCO 进行编码,以允许通过属性/字段(分别通过手动/自动序列化)访问配置值,因此作为开发人员,它们很容易使用。

    现在我正在审查他们启用数据库和流畅配置的能力,我正在寻找开箱即用(最好是开源)的替代方案。如果我可以减少不必要的代码重复并允许他们访问数据库和流畅的配置(除了他们现有的能力之外),我对我现有的所有项目进行改造都没有问题。

    有什么建议还是值得我自己动手来获得我所追求的功能?

    在我的研究中,我发现 this可能重复的问题由 Nini 回答但它已经将近 2 年没有更新了,并且只支持我已经涵盖的选项(无论如何都基于其文档)。我在研究中遗漏了什么还是有更好的选择?

    更新

    我所追求的显式功能是:
  • XML 文件
  • 类 INI/Java properties文件
  • 数据库(至少 MS SQL 和 SQLite,可选 MySQL 和任何其他您可以想象的)
  • 流畅(不需要代码生成)
  • 某种扩展 API 允许我添加自己的源
  • 它肯定需要与任何数据源进行序列化,以便通过属性/字段进行访问。
  • 枚举支持

  • 如果现有框架足够开放以完成我需要做的事情,我会对扩展现有框架感兴趣,否则它可能不适合。

    更新

    现有 System.Configuration 的功能命名空间很棒,我很熟悉它的工作情况,但总的来说它不能满足我的要求。我已经使用过它(即使在高级场景中),但它只允许有限的 XML 可扩展性:这不是我所追求的。

    如果我不得不放弃任何预定义的功能,我会说流畅的配置是最不重要的(无论如何,为此提供一个有值(value)的接口(interface)是非常困难的)。我会在我找到的任何东西上拼凑一些东西。

    它已经超过 24 小时(并且超过 125 次观看)并且没有人能够提供合理的替代方案这一事实告诉我它可能不存在。我会自己开始,希望有人能提供一个有趣的选择。

    最佳答案

    创建通用配置管理器是一项非常艰巨的任务。多年来,我没有看到任何配置框架出现,我也不会。只需看看 System.Configuration命名空间,您可以看到尝试匹配一组相似的功能将是多么昂贵。大多数时候,配置要求是非常特定于项目的,没有 Elixir 。

    我的建议是坚持你自己的解决方案,只要它很容易进行单元测试并且可以完成工作。

    关于c# - 更换配置框架,寻找替代方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9797769/

    34 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com