我最近尝试了Ninject.Web.Mvc扩展的Ninject,我注意到了一些奇特的东西,而不是打破,令人困惑.
在NinjectHttpApplication抽象类中,有一个定义如下的构造函数.
/// <summary> /// Initializes a new instance of the <see cref="NinjectHttpApplication"/> class. /// </summary> protected NinjectHttpApplication() { this.onePerRequestModule = new OnePerRequestModule(); this.onePerRequestModule.Init(this); }
我在这里放置了一个调试器断点,这被称为几次.我找不到任何真实的文件.在实现代码中,有一行抓住了我的眼睛.
if (kernel.Settings.Get("ReleaseScopeAtRequestEnd",true)) { OnePerRequestModule.StartManaging(kernel); }
我的问题如下:
>什么是OnePerRequestModule
为什么这个构造函数被多次调用?
>这个StartManaging方法的目的是什么,如果多次调用构造函数?