2015-06-17 3 views
2

Я использую simpleInjector 2.8.0.0 Я хотел бы построить только один экземпляр dbContext во время жизни. (Моя цепь зависимостей имеет 2 зависимостей от IDatabaseContext/DbContext)Простой инжектор LifetimeScope с DbContext

У меня есть области видимости декоратор, который реализует сферу пожизненную (Область декоратора впрыскивается в 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

спасибо steven. Вы правы, я думаю, что это было 2 сигнала signalr. вы хотите добавить его в качестве ответа – jonho

ответ

2

Вы уверены, что это тот же масштаб? Либо вы вложенные области, либо вы видите, что обрабатывается два фактических запроса. В отладчике вы можете просмотреть информацию запроса, например, путем проверки свойства HttpContext.Current.Request.Url.

Смежные вопросы