Недавно я опробовал 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
, если конструктор вызывается несколько раз?