替换配置框架,寻找替代方案

M.B*_*ock 5 .net c# configuration frameworks

我已经使用以下自行开发的配置框架来管理我的项目配置几年了:

  1. 第一个模仿Java的.properties文件(一堆supergroup.subgroup.property=value支持集合的行)并且适用于许多情况(我发现它最适合小应用程序).这个非常适合非常简单的配置

  2. 第二个基于DataContractSerializer(并且可选地XmlSerializer)允许第一个的所有功能具有XML的所有特权以及更少的管道以使其工作.这个很好,但是在没有明确的UI的情况下进行管理是不切实际和麻烦的,以减轻教导最终用户修改XML的麻烦.

两个现有的框架都可以通过属性/字段(通过手动/自动序列化分别)封送到POCO和来自POCO,以允许访问配置值,因此它们作为开发人员非常容易使用.

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

有什么建议或值得我自己去获取我追求的功能吗?

在我的研究中,我发现这个可能重复的问题由Nini回答,但它在近两年内没有更新,只支持我已经涵盖的选项(无论如何基于其文档).我在研究中遗漏了一些东西,还是有更好的选择?

更新

我所追求的显式特征是:

  • XML文件
  • INI /类似Java的properties文件
  • 数据库(至少MS SQL和SQLite,可选MySQL和其他任何你想象的)
  • 流利(不需要代码生成)
  • 某种扩展API允许我添加自己的源代码
  • 它肯定需要序列化到/从任何数据源序列化,以通过属性/字段访问.
  • 枚举支持

我有兴趣扩展现有的框架,如果它足够开放,可以做我需要做的事情,但是否则它可能不适合.


UPDATE

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

如果我必须给出任何预定义的功能,我会说流畅的配置是最不重要的(无论如何,为这个通用提供有价值的接口是非常困难的).我会把一些东西放在我发现的东西之上.

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

Teo*_*gul 2

创建通用配置管理器是一项非常艰巨的任务。多年来,我没有看到任何配置框架出现,我也不认为我会出现。只要看一下System.Configuration命名空间,您就会发现尝试匹配一组类似的功能会花费多么昂贵。大多数时候,配置要求是非常特定于项目的,并且没有灵丹妙药。

我的建议是坚持使用您自己的解决方案,只要它易于进行单元测试并且能够完成工作。

  • 也没有遇到这样的框架(尽管多年来我已经构建了相当多的集合或相关类)。顺便说一句,即使是“像 WCF”这个词也很可怕(考虑到 WCF 的大小!)。 (2认同)