我为控制台应用程序和 MVC Web 应用程序使用相同的 DAL 基础结构,我需要在 MVC Web 应用程序中为 InRequestScope 配置一些东西,但需要知道当 OnePerRequestModule 尚未配置时 InRequestScope 的默认回退是什么(就像我的控制台应用程序中的情况一样)。
编辑 我的 Ninject 版本是 3.0.1.10。
我为控制台应用程序和 MVC Web 应用程序使用相同的 DAL 基础结构,我需要在 MVC Web 应用程序中为 InRequestScope 配置一些东西,但需要知道当 OnePerRequestModule 尚未配置时 InRequestScope 的默认回退是什么(就像我的控制台应用程序中的情况一样)。
编辑 我的 Ninject 版本是 3.0.1.10。
阅读Nate Kohari 的 Cache and Collect 文章。
Ninject 的最新版本将它们分离OnePerRequestModule
到一个Ninject.Web.Mvc
程序集中,因此如果不在该上下文中工作,您甚至无法看到InRequestScope
扩展。
对于控制台应用程序,您通常不会处理大量需要Dispose
d 来来去去的请求,因此默认范围[null
而InTransientScope
不是指定范围] 和/或允许类的隐式自我注册可能会导致完全合适。但是一般来说,你最好弄清楚你的工作单元是什么,并在需要处理的东西需要处理时明确管理(因为对象不会被限定范围,不会进行处理,只有终结器会启动 [with墨菲定律规定的时间])。
wiki的范围部分也值得一读。