.net 是否应该注入自定义配置节依赖项?

.net 是否应该注入自定义配置节依赖项?,.net,dependency-injection,.net,Dependency Injection,另外,连接字符串如何适应 据推测,dal可以从配置中读取这些值,还是应该从顶部向下传递这些值?我倾向于对此表示同意 将自定义配置封装到类中,然后注入该类,有几个原因,包括: 可测试性1-您的配置可以很容易地模拟出来。任何需要配置的测试中的类,都不需要你玩App.Configs来让测试正常工作-你的类与Microsoft的ConfigurationManager很好地解耦了 可测试性2-配置本身成为可测试的。如果您正在config类中对值进行任何“摆弄”(例如,将逗号分隔的值列表转换为数组),您

另外,连接字符串如何适应


据推测,dal可以从配置中读取这些值,还是应该从顶部向下传递这些值?

我倾向于对此表示同意

将自定义配置封装到类中,然后注入该类,有几个原因,包括:

  • 可测试性1-您的配置可以很容易地模拟出来。任何需要配置的测试中的类,都不需要你玩App.Configs来让测试正常工作-你的类与Microsoft的ConfigurationManager很好地解耦了
  • 可测试性2-配置本身成为可测试的。如果您正在config类中对值进行任何“摆弄”(例如,将逗号分隔的值列表转换为数组),您可以简单地单独测试它的行为
  • 可交换性—您可以轻松地将配置提供程序交换为代码中的配置,或者从数据库中配置,因为实际配置是封装的

所以是的:)

约书亚·弗拉纳根几个月前写过这篇文章

他展示了如何将自定义配置节视为通过构造函数注入提供的POCO