我正在使用带有MVC4插件的Autofac IoC容器,该插件提供了InstancePerHttpRequest生命周期范围。然而,在我的项目中,我有Web、Web API和后台工作线程。在下面的示例中,我假设当不是来自Web请求时,InstancePerHttpRequest作用不大。
builder.RegisterType<DatabaseFactory>().As<IDatabaseFactory>()
.InstancePerHttpRequest()
我想知道是否可能像以下示例那样,让容器选择最适合的生命周期范围?
builder.RegisterType<DatabaseFactory>().As<IDatabaseFactory>()
.InstancePerHttpRequest()
.InstancePerApiRequest()
.InstancePerDependency();
在这种情况下,我的意图是如果请求来自Web请求,则选择InstancePerHttpRequest范围,如果来自WebApi请求,则选择InstancePerApiRequest范围,如果被应用程序工作线程使用,则使用InstancePerDependency范围。有什么想法,是否可能或类似的方法?谢谢。