J'ai récemment essayé Ninject
avec l'extension Ninject.Web.Mvc
, et j'ai remarqué quelque chose de particulier et, tout en ne cassant pas, prêtant à confusion.Ninject et OnePerRequestModule
Dans la NinjectHttpApplication
classe abstraite, il est un constructeur défini comme suit ..
/// <summary>
/// Initializes a new instance of the <see cref="NinjectHttpApplication"/> class.
/// </summary>
protected NinjectHttpApplication()
{
this.onePerRequestModule = new OnePerRequestModule();
this.onePerRequestModule.Init(this);
}
J'ai mis un point d'arrêt de débogage ici, et cela est appelé à quelques reprises. Je ne trouve pas de vraie documentation à ce sujet. Dans le code d'implémentation, il y a cette ligne qui attire mon attention.
if (kernel.Settings.Get("ReleaseScopeAtRequestEnd", true))
{
OnePerRequestModule.StartManaging(kernel);
}
Mes questions sont les suivantes ...
- Qu'est-ce que
OnePerRequestModule
- Pourquoi est-ce constructeur étant appelé plusieurs fois?
- Quel est le but de cette méthode
StartManaging
, si le constructeur est appelé plusieurs fois?
liée: http://stackoverflow.com/questions/15778324/do-i-need-to-register-ninject-oneperrequestmodule-with-ninject-web-mvc-3-0/15786866# –