Резервный вариант Ninject InRequestScope для InThreadScope

В моем проекте MVC3 я настроил свое ядро ​​на Ninject the Entityframework context на основе InRequestScope, это работает отлично, но у меня есть фоновый бегун, который выполняет некоторое управление рабочим процессом.

Он запускает новый поток каждые 5 минут, и я убираю свои зависимости в этот поток. Если я изменю область видимости на InThreadScipe, метод Dispose будет запущен, но если я верну его обратно на InRequestScope, метод Dispose не сработает.

Есть ли способ вернуться к InThreadScope, если InRequestScope недоступен?

Обновление: Только что получил голосование за этот вопрос, почему бы не добавить в него дополнительную информацию. Я думаю, что способ распоряжения временем жизни в Ninjects немного устарел. У других IoC есть дочерние контейнеры, которые были зарегистрированными временными объектами в течение всего дочернего контейнера и удаляются, когда дочерние контейнеры находятся. Это гораздо более простой способ объединения, например, веб-API с пользовательским рабочим, как в приведенном выше сценарии.

11
задан Anders 15 July 2015 в 07:56
поделиться