ninject - 如果未使用 OnePerRequestModule,Ninject 中 InRequestScope 的默认后备是什么?

标签 ninject

我对控制台应用程序和 MVC Web 应用程序使用相同的 DAL 基础结构,并且我需要在 MVC Web 应用程序中为 InRequestScope 配置一些内容,但需要知道当 OnePerRequestModule 没有配置时 InRequestScope 的默认回退是什么没有被配置(就像我的控制台应用程序中的情况一样)。

编辑 我的 Ninject 版本是 3.0.1.10。

最佳答案

阅读Cache and Collect article by Nate Kohari .

最新版本的 Ninject 将 OnePerRequestModule 分离到 Ninject.Web.Mvc 程序集中,因此您甚至无法看到 InRequestScope code> 扩展而不在该上下文中工作。

对于控制台应用程序,通常您不会处理大量传入和传出的请求,这些请求需要 Disposed,因此 null 的默认作用域InTransientScope [并且不指定范围]和/或允许类的隐式自注册可能是完全合适的。然而,一般来说,您最好弄清楚您的工作单元是什么,并明确管理何时需要处理需要处理的内容(因为对象不会被限定范围,不会发生处理,只是终结器将启动[与墨菲定律规定的时间])。

scoping section of the wiki关于这个主题也值得一读。

关于ninject - 如果未使用 OnePerRequestModule,Ninject 中 InRequestScope 的默认后备是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13124916/

相关文章:

c# - Ninject 和异步操作

asp.net-mvc - 如何在 Ninject 中创建根据请求的 Controller 而变化的绑定(bind)?

c# - 如何获取对象是否已在注入(inject)中检索到

c# - 带有通用接口(interface)的 NInject

c# - 将多个 EF 上下文注册到一个 DI 容器中

.net - Ninject:如何根据依赖链设置绑定(bind)

c# - Ninject 中的 transient 范围对象何时停用?

c# - 通过 MVC 集成将上下文传递给 FluentValidation 中的集合验证器

asp.net-mvc - 我应该在哪里使用 Ninject 2+ 进行注入(inject)(以及如何安排我的模块?)

asp.net - 设计一个可单元测试的类