В моем проекте MVC3 я настроил свое ядро на Ninject контекст Entityframework на основе InRequestScope, это работает отлично, но у меня есть фоновый бегун, который выполняет некоторые управления рабочим процессом.
Он запускает новый поток каждые 5 минут, а я Ninject меняет зависимости в этом потоке. Если я изменю область действия на InThreadScipe, то будет запущен метод Dispose, но если я верну его обратно в InRequestScope, метод Dispose не будет запущен.
Есть ли способ отступить к InThreadScope, если InRequestScope недоступен?
Обновление: Только что получил ответ на этот вопрос и почему бы не обновить его дополнительной информацией. Я думаю, что Ninjects способ обработки жизненного времени немного устарел. Другие IoC имеют дочерние контейнеры. Транзитные зарегистрированные объекты живут в течение всего дочернего контейнера и размещаются, когда находятся дочерние контейнеры. Это гораздо более простой способ объединения, например, Web API с пользовательским рабочим, как описано выше.