2011-01-14 6 views
1

In Blick auf http://code.google.com/p/autofac/wiki/AspNetIntegration, bin ich verwirrt, was die Lebensdauer der Objekte mit ContainerScoped() registriert ist.In AutoFac, was ist die Lebensdauer des Objekts von ContainerScoped() bei Verwendung mit ASP.NET-Integration?

Die Seite heißt es:

Die ContainerDisposalModule Autofac jeder erstellten Komponenten während der Anforderungsverarbeitung, sobald die Anforderung abgeschlossen entsorgen lässt.

Was mir scheint darauf hinzudeuten, dass ContainerScoped() Registrierungen würde die gleiche Instanz für jeden Entschluss während eines einzigen Httprequest zurückkehren - und das nicht gegebene Objektinstanz über HttpRequests geteilt werden würde.

Allerdings, wenn das der Fall wäre, sehe ich nicht den Zweck der HttpRequestScoped() Methode, die mich glauben macht, dass ich etwas vermisse.

Was ist die Objektlebensdauer von ContainerScoped() Registrierungen bei Verwendung von Autofac.Integration.Web.ContainerDisposalModule in ASP.NET?

Antwort

4

Verwenden Sie eine alte Version von Autofac? Die Methode "ContainerScoped()" heißt in späteren Versionen "InstancePerLifetimeScope" und ich denke (nicht sicher), dass die Funktion "HttpRequestScoped" veraltet ist. Jedenfalls wären die beiden Methoden äquivalent, da ein lebenslanger Geltungsbereich (untergeordneter Container) pro Anforderung erstellt wird.

+0

Es scheint, als ob ich Autofac Version 1.4.3.536 verwende. – Nathan

+1

Und es sieht so aus, als hätten Sie Recht, dass "ContainerScoped()" jetzt "http://code.google.com/p/autofac/wiki/NewInV2" "InstancePerLifetimeScope" genannt wird – Nathan

Verwandte Themen