2017-09-15 14 views
0

我有一个使用Unity作为GlobalConfiguration.Configuration.DependencyResolver的Web API项目。该项目使用单位工作模式和单个数据访问层,该数据访问层在每个请求的整个生命周期内保存在内存中。在每个请求结束时,事件被触发,我想使用它们自己的唯一数据访问层执行事件,以便它们可以并行运行(共享导致并发问题)。使用Unity创建嵌套生命期范围DI

如何在Http请求上下文中创建子生命周期范围?

我访问的UnityDependencyResolver它具有方法IDependencyScope BeginScope()一个静态实例,但由于它实现System.Web.Http.Dependencies.IDependencyResolver似乎使用不正确的选项?

与其他DI框架,如Autofac,这将是:

using(var scope = container.BeginLifetimeScope()) 
{ 
    var service = scope.Resolve<IService>(); 

    using(var nestedScope = scope.BeginLifetimeScope()) 
    { 
    var anotherService = nestedScope.Resolve<IOther>(); 
    } 
} 

我宁愿通过消息队列的事件转移到一个不同的过程和火灾,但它是不可能在这个时候。

回答