Dependency injection 为MVC 5、SignlaR、NServiceBus中的Autofac组件选择正确的寿命范围

Dependency injection 为MVC 5、SignlaR、NServiceBus中的Autofac组件选择正确的寿命范围,dependency-injection,asp.net-mvc-5,signalr,autofac,hangfire,Dependency Injection,Asp.net Mvc 5,Signalr,Autofac,Hangfire,我试图了解如何在MVC 5应用程序中正确地向Autofac注册组件和依赖项,该应用程序还使用以下功能: 应用服务(计费服务等) Hangfire(有一个Hangfire.Autofac集成包) 信号器(有一个Autofac.signal集成包) NServiceBus(有一个NServiceBus.Autofac集成包) Quartz.NET(有一个Quartz.Autofac集成包) 实体框架(上述所有内容可能需要也可能不需要DbContext注入) 虽然我理解,例如,builder.Regi

我试图了解如何在MVC 5应用程序中正确地向Autofac注册组件和依赖项,该应用程序还使用以下功能:

  • 应用服务(计费服务等)
  • Hangfire(有一个Hangfire.Autofac集成包)
  • 信号器(有一个Autofac.signal集成包)
  • NServiceBus(有一个NServiceBus.Autofac集成包)
  • Quartz.NET(有一个Quartz.Autofac集成包)
  • 实体框架(上述所有内容可能需要也可能不需要DbContext注入)
  • 虽然我理解,例如,
    builder.RegisterType().InstancePerRequest()
    在按请求使用并注入MVC控制器时的用途,但我不清楚其他组件需要如何注册

    我在OWIN startup.cs类中注册的MVC容器具有:

    var resolver = new Autofac.Integration.Mvc.AutofacDependencyResolver( container );
    DependencyResolver.SetResolver( resolver );
    
    我有一个额外的用于Signal的Autofac容器,因为否则它将无法工作

    所以问题就归结为:我应该用什么生命周期范围注册一个由MVC控制器、信号集线器、NServiceBus消息处理程序和一些应用程序服务同时使用的MyDbContext?

    MyDbContext
    注册为
    .InstancePerRequest()
    就足够了吗?还是有必要拥有多个容器,这样,我应该向每个容器注册
    MyDbContext

    我是Autofac的新手,因此我不知道如何控制这些组件的处置、重新创建等

    多谢各位