管理autofac容器设置

时间:2009-10-19 13:36:34

标签: inversion-of-control ioc-container autofac

我的一位团队成员决定在我们的某项服务上使用autofac,因为我们想尝试一下,我们坚持使用它。

现在已经过了一段时间,容器设置方法已经增长了!它太大了,我们遇到了问题。

拆分它并没有带来我们寻找的结果。也许我们只是错误地使用它。

所以我的问题是:我们如何管理容器设置?我们可以转储到XML还是有其他最佳实践?

1 个答案:

答案 0 :(得分:6)

使用autofac管理容器设置的方法有很多种。

最常见的方法之一是使用Module并将其注册到构建器。您可以通过这种方式拆分多个注册组:

public class DALModule : Module
{
   protected override void Load(ContainerBuilder builder)
   {
      builder.Register<SomeDataSomething>().As<IDataSomething>();  
      builder.Register<SomeOtherSomething( c => SomeOtherSomething.Create());
      //and so on
   }
}

然后通过代码或XML将这些分解的模块注册到构建器。 (对builder.RegisterModule( new DALModule())的简单调用会在这里进行)。请参阅Structuring with Modules上的维基页面。

或者,您只能使用XML文件(或一起使用XML和模块)。请参阅XML config上的wiki页面。