【发布时间】:2011-10-31 09:35:22
【问题描述】:
在我的 MVC3 项目中,我已将我的内核设置为 Ninject 在 InRequestScope 基础上的 Entityframework 上下文,这非常有效。但是我有一个后台运行程序,可以进行一些工作流管理。
它每 5 分钟启动一个新线程,我 Ninject 我的依赖项到这个线程中,如果我将范围更改为 InThreadScope,则 Dispose 方法会被触发,但如果我将其更改回InRequestScope Dispose 方法不会触发。
如果InRequestScope 不可用,有没有办法回退到InThreadScope?
更新:刚刚对这个问题投了赞成票,为什么不更新一些额外的信息。我认为 Ninjects 处理生命周期的方式有点过时了。其他 IoC 的子容器是在整个子容器期间存在的瞬态注册对象,并在子容器存在时被释放。这是一种更简单的方法,例如将 Web API 与上述场景中的自定义工作器相结合。
【问题讨论】: