2010-02-21 56 views
1

我有依赖注入与Unity一起工作,它运行良好,但我想减少app.config中的cruft数量,因为它变得巨大。如何减少用于Unity依赖注入的.config所需的配置数量?

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

那么,有没有办法;

  1. 通过使用默认值减少混乱的数量?
  2. 将配置移出到另一个有助于隔离它的.config文件?

我明白.Net 4.0有一些好的东西可以减少.config文件,这是否有助于Unity配置?

由于提前,

瑞安

回答

2

从我的角度来看,你有两个选择:

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

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

3

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

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

StructureMap和Windsor的功能都使得这更容易,但在任何情况下configuration in config should be left for the scenarios where you truly need to be able to swap out dependencies after compilation

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