我需要为不同的控制器使用多个Autofac容器。例如,我有2个WebApi控制器应该使用container1
作为依赖项解析器,3个其他WebApi控制器应该使用container2
作为依赖项解析器。我正在使用Owin WebApi2。我能这样做吗?
答案 0 :(得分:1)
我通过在另一个容器中注册多个容器来解决问题。因此,为了在适当的控制器中使用适当的容器,我需要手动解决所需的依赖关系:
class SomeController : ApiController
{
private ISomeDep _dep;
public SomeController(IComponentContext container)
{
// Resolve some dep. from the first container.
_dep = container.Resolve<IFirstContainer>().Resolve<ISomeDep>();
}
}