У меня есть веб-приложение, где многие компоненты зарегистрированы с помощью .LifestylePerWebRequest()
, теперь я решил реализовать Quartz.NET, библиотеку планирования заданий .NET, которая выполняется в отдельных потоках и а не поток запроса.
Таким образом, HttpContext.Current
дает null
. Мои сервисы, репозитории и IDbConnection
были установлены до сих пор с помощью .LifestylePerWebRequest()
, поскольку он упростил их удаление, когда закончились запросы.
Теперь я хочу использовать эти компоненты в обоих сценариях, во время веб-запросов я хочу, чтобы они остались незатронутыми, а в контекстах без запроса я хочу, чтобы они использовали другой образ жизни, я полагаю, что я могу справиться с самим распоряжением, но как должен ли я использовать его для выбора стиля жизни для компонентов на основе текущего контекста?
В настоящее время я регистрирую службы (например), например:
container.Register(
AllTypes
.FromAssemblyContaining<EmailService>()
.Where(t => t.Name.EndsWith("Service"))
.WithService.Select(IoC.SelectByInterfaceConvention)
.LifestylePerWebRequest()
);
Я полагаю, что должен использовать какой-то метод расширения, но я просто не вижу его.