使用DbContext的简单注入器LifetimeScope

时间:2015-06-17 20:27:38

标签: signalr simple-injector

我正在使用simpleInjector 2.8.0.0我想在生命周期范围内构造一个dbContext实例。 (我的依赖链在IDatabaseContext / DbContext上有2个依赖项)

我有一个范围装饰器,它实现了生命周期范围(范围装饰器被注入到SignalRHub中):

  using (ServiceHost.Container.BeginLifetimeScope())
        {
            var commandHandler = ServiceHost.Container.GetInstance<ICommandHandler<TCommand>>();
       //constructs 2 DbContexts.
            commandHandler.Handle(command);
        }

我有IDatabaseContext的生命周期范围注册:

        container.RegisterLifetimeScope<IDatabaseContext, DatabaseContext>();

但是,我可以看到(来自Guid)我在范围内创建了2个IDatabaseContext / DbContext实例。

1 个答案:

答案 0 :(得分:2)

你确定这是相同的范围吗?要么是嵌套范围,要么就是你所看到的是处理的两个实际请求。在调试器中,您可以查看请求信息,例如通过检查HttpContext.Current.Request.Url属性。