Ninject 3 InRequestScope gibt nicht dieselbe Instanz für dieselbe Anforderung zurück

Kürzlich habe ich eines meiner MVC3-Projekte von Ninject 2 auf Ninject 3 aktualisiert.

Nachdem ich ein paar Minuten lang versucht hatte herauszufinden, warum InRequestScope nicht mehr verfügbar war, stellte ich fest, dass dies nun eine Erweiterung von Ninject.Web.Common ist.

Wenn ich nun versuche, die Anwendung auszuführen, funktioniert Ninject so, als ob alle mit einem Bereich InRequest verbundenen Typen InTransientScope wären. Jedes Mal wurde eine neue Instanz erstellt.

In meiner Klasse, die von NinjectModule erbt, habe ich eine einfache Bindung wie folgt:

Bind<ViewModel.Activity>().ToSelf().InRequestScope();

In meinem Controller habe ich 2 Eigenschaften vom Typ ViewModel.Activity, die mit dem Ninject-Attribut markiert sind.

  [Inject]
  public ViewModel.Activity Activity { get; set; }

  [Inject]
  public ViewModel.Activity Activity1 { get; set; }

Wenn ich im Debug-Modus den Wert des HashCode der beiden Eigenschaften sah, haben alle unterschiedlichen Wert, aber HttpContext ist der gleiche; Ich bin in der gleichen Anfrage.

Was habe ich vermisst, um das neue Ninject.Web.Common.InRequestScope mit der neuen Version von Ninject 3 richtig zu verwenden?

Vielen Dank.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage