如何减少Unity依赖注入的.config所需的配置量?

时间:2010-02-21 11:09:24

标签: .net configuration unity-container

我已经使用Unity进行依赖注入并且运行良好但是我希望减少app.config中的cruft数量,因为它变得越来越大。

这是一个问题,因为客户通过删除评论等来定期“清理”配置,我们最终会得到几百行令人讨厌的XML而无需解释。

那么,有没有办法;

  1. 使用默认设置减少杂乱的数量?
  2. 将配置移到另一个有助于隔离它的.config文件中?
  3. 据我所知.Net 4.0有一些减少.config文件的好东西,这会帮助Unity配置吗?

    提前致谢,

    赖安

2 个答案:

答案 0 :(得分:3)

代替配置代码。除非您明确需要能够在编译后改变从抽象类型到具体类型的映射,否则使用配置文件只会使您的系统更加脆弱。

Unity没有很多基于约定的功能,但你总能自己写一些。在代码中,这将允许您简单地扫描特定程序集以查找所有公共类型,例如......“存储库”...并注册它们。

StructureMap和Windsor都具有使这更容易的功能,但无论如何configuration in config should be left for the scenarios where you truly need to be able to swap out dependencies after compilation

在大多数情况下,这只是在容器中注册的服务总量的一小部分(如果有的话)。

答案 1 :(得分:2)

从我的观点来看,你有两个选择:

  • 转到另一个配置文件。
  • 在代码中写入IoC的东西,我更喜欢这种方式,因为它更具可读性。您可以拥有一个通过代码创建的静态容器变量:默认情况下为正常情况,或者在单元测试中使用模拟。

RepositoryContainer.Contanier = ProductionRepositories(); RepositoryContainer.Container = MockRepositories();