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