2013-04-05 9 views

Antwort

6

Wenn man sich die Interna von ObjectFactory.ReleaseAndDisposeAllHttpScopedObjects anschaut, kann man sehen, dass es ein conveniency Methode wie folgt implementiert ist:

public static void ReleaseAndDisposeAllHttpScopedObjects() 
{ 
    HttpContextLifecycle.DisposeAndClearAll(); 
} 

IE. Sie können die Methode HttpContextLifecycle.DisposeAndClearAll aufrufen, um die Objekte zu löschen.

Edit: Da der HttpContextLifecycle global und nicht pro Container ist, denke ich, dass ein nested container Ansatz die Lösung wäre, um eine feinere Kontrolle über die Lebensdauer des Objekts während einer HTTP-Anfrage zu erhalten.

+0

Danke, aber es scheint alle Http-Objekte, nicht nur diejenigen aus der aktuellen Container-Instanz zu disponentieren. –

+0

@ guillegr123 - Der 'HttpContextLifecycle' ist global, nicht pro Container. – PHeiberg

+0

Wenn Sie die Lebensdauer bestimmter Objekte innerhalb einer 'HttpRequest' kontrollieren wollen, sollten Sie mit einem [geschachtelten Container] gehen (http://codebetter.com/jeremymiller/2010/02/10/nested-containers-in- structuremap-2-6-1 /) Ansatz. – PHeiberg