我正在使用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实例。
答案 0 :(得分:2)
你确定这是相同的范围吗?要么是嵌套范围,要么就是你所看到的是处理的两个实际请求。在调试器中,您可以查看请求信息,例如通过检查HttpContext.Current.Request.Url
属性。