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

Configuration 使用web.config在Autofac中注册工厂类,configuration,autofac,Configuration,Autofac,我一直在寻找一种在autofac中使用注册factory类的方法,但是文档似乎有点单薄 我想要完成的是在配置中执行以下操作: builder.Register(c=>MyFactory.GetMyObject()).As() 有什么好方法可以做到这一点吗?Autofac最初是根据代码进行配置的,甚至是自动连接的 也许你要找的是或。这两个框架最初是为从XML配置而构建的,甚至是自动连接的。从代码中处理注册似乎比使用web.config有一些优势,因为这样更容易处理复杂的依赖关系 在下面的例子中,我

我一直在寻找一种在autofac中使用注册factory类的方法,但是文档似乎有点单薄

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

builder.Register(c=>MyFactory.GetMyObject()).As()


有什么好方法可以做到这一点吗?

Autofac最初是根据代码进行配置的,甚至是自动连接的


也许你要找的是或。这两个框架最初是为从XML配置而构建的,甚至是自动连接的。

从代码中处理注册似乎比使用web.config有一些优势,因为这样更容易处理复杂的依赖关系


在下面的例子中,我唯一担心的是所有的注册都是在Global.asax中完成的。不过,通过将注册分离到一个单独的程序集,这很容易解决。

实现这一点的方法是将注册封装到一个可以从XML注册的Autofac模块中。(此处介绍了模块:)

您的模块将类似于:

public class MyModule : Module
{
  protected override void Load(ContainerBuilder builder)
  {
    builder.Register(c => MyFactory.GetMyObject()).As<IMyObject>();
  }
}
公共类MyModule:Module
{
受保护的覆盖无效负载(ContainerBuilder builder)
{
Register(c=>MyFactory.GetMyObject()).As();
}
}
以及要注册它的XML:

<module type="MyModule" />