【发布时间】:2017-04-07 19:51:22
【问题描述】:
我需要为不同的控制器使用多个 Autofac 容器。例如,我有 2 个 WebApi 控制器应该使用 container1 作为依赖解析器,还有 3 个其他 WebApi 控制器应该使用 container2 作为依赖解析器。我正在使用 Owin WebApi2。我可以这样做吗?
【问题讨论】:
标签: asp.net-web-api owin autofac
我需要为不同的控制器使用多个 Autofac 容器。例如,我有 2 个 WebApi 控制器应该使用 container1 作为依赖解析器,还有 3 个其他 WebApi 控制器应该使用 container2 作为依赖解析器。我正在使用 Owin WebApi2。我可以这样做吗?
【问题讨论】:
标签: asp.net-web-api owin autofac
我通过在另一个容器中注册多个容器解决了这个问题。因此,为了在适当的控制器中使用适当的容器,我需要手动解决所需的依赖项,如下所示:
class SomeController : ApiController
{
private ISomeDep _dep;
public SomeController(IComponentContext container)
{
// Resolve some dep. from the first container.
_dep = container.Resolve<IFirstContainer>().Resolve<ISomeDep>();
}
}
【讨论】: