使用web.config在Autofac中注册工厂类

时间:2009-07-02 15:37:39

标签: configuration autofac

我一直在寻找一种使用XmlConfiguration在autofac中注册工厂类的方法,但文档看起来有点渺茫。

我想要完成的是在我的配置中执行以下操作:

builder.Register(c => MyFactory.GetMyObject()).As<IMyObject>();

有没有好办法呢?

3 个答案:

答案 0 :(得分:3)

执行此操作的方法是将注册封装到Autofac模块中,该模块可以从XML注册。 (模块在这里描述:http://code.google.com/p/autofac/wiki/StructuringWithModules

您的模块看起来像:

public class MyModule : Module
{
  protected override void Load(ContainerBuilder builder)
  {
    builder.Register(c => MyFactory.GetMyObject()).As<IMyObject>();
  }
}

用XML注册它:

<module type="MyModule" />

答案 1 :(得分:0)

Autofac最初是为代码配置甚至自动装配而构建的。

也许您正在寻找的是Spring.NETCastle。这两个框架最初构建为从XML配置,甚至是自动装配。

答案 2 :(得分:0)

从代码处理注册似乎对使用web.config有一些好处,因为以这种方式处理复杂的依赖关系似乎更容易。

在我可以找到的示例中,我唯一担心的是所有注册都是在Global.asax中完成的。通过将注册分解为单独的程序集,可以很容易地解决这个问题。