Ant*_*lev 6

文章本身几乎回答了你的问题:

在生产过程中,依赖注入接管并自动为我提供AppConfigSettings实例.为了测试,我生成了一个模拟IApplicationSettings.

一般来说,设计模式,实践和方法(IoC不是一个模式)试图帮助您至少一件事:最小化耦合和最大化凝聚力.当你直接使用ConfigurationManager和所有(Convert.ToBoolean等等)时,你是:

  • 将代码耦合到ConfigurationManager(不利于测试和重用)
  • 将您的代码耦合到配置文件本身(除了通过.config文件之外,没有其他方法可以配置您的类;对于测试和重用也不好)
  • 混合职责(读取和解析配置设置;违反SRP)

当然,使用IoC 读取配置设置是一种矫枉过正,但这篇文章肯定只涉及更大图片的一小部分.