我最近尝试了Ninject
扩展Ninject.Web.Mvc
,我注意到一些奇怪的东西,虽然没有破坏,但令人困惑。
在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
如果构造函数被多次调用,这个方法的目的是什么?