Wie stelle ich mithilfe von Autofac sicher, dass pro Anforderung eine NHibernate ISession vorhanden ist?

Ich habe den folgenden Code in einem Autofac-Modul, das in meiner Application_Start-Methode verwendet wird:

builder.Register(c => new Configuration().Configure().BuildSessionFactory())
    .SingletonScoped();
builder.Register(c => c.Resolve<ISessionFactory>().OpenSession())
    .HttpRequestScoped();

builder.Register<NHibernateSomethingRepository>().As<ISomethingRepository>();

Der Konstruktor für das Repository verwendet eine ISession als Argument. Am Ende habe ich jedoch eine Sitzung für die gesamte Anwendung, obwohl ich ausdrücklich darum gebeten habe, dass HttpRequestScoped verwendet wird.

Ich habe das ContainerDisposal-HTTP-Modul konfiguriert.

Laut demDokumentatio Sie müssen einen verschachtelten Container erstellen, aber ich lasse Autofac die Abhängigkeiten automatisch verkabeln.

Was soll ich machen

Vielen Dank

Antworten auf die Frage(2)

Ihre Antwort auf die Frage