我有一个Web应用程序,其中许多组件都是使用
因此,
现在我想在两种情况下使用这些组件,即在Web请求期间,我希望它们保持不变,在非请求上下文中,我希望它们使用不同的生命周期方式,我可以自己处理释放,但是基于当前上下文选择组件的生命周期方式应该如何处理呢?
当前,我像这样注册服务(例如):
.LifestylePerWebRequest()
注册的,现在我决定实现Quartz.NET,这是一个.NET作业调度库,它在单独的线程中执行,而不是请求线程。因此,
HttpContext.Current
返回null
。到目前为止,我的服务、存储库和IDbConnection
都是使用.LifestylePerWebRequest()
实例化的,因为这样更容易在请求结束时处理它们的释放。现在我想在两种情况下使用这些组件,即在Web请求期间,我希望它们保持不变,在非请求上下文中,我希望它们使用不同的生命周期方式,我可以自己处理释放,但是基于当前上下文选择组件的生命周期方式应该如何处理呢?
当前,我像这样注册服务(例如):
container.Register(
AllTypes
.FromAssemblyContaining<EmailService>()
.Where(t => t.Name.EndsWith("Service"))
.WithService.Select(IoC.SelectByInterfaceConvention)
.LifestylePerWebRequest()
);
我认为我应该使用某种扩展方法,但我却看不到它。