2013-04-05 5 views

risposta

6

Se si guarda la struttura interna di ObjectFactory.ReleaseAndDisposeAllHttpScopedObjects, si può vedere che si tratta di un metodo di conveniency implementata in questo modo:

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

IE. È possibile richiamare il metodo HttpContextLifecycle.DisposeAndClearAll per cancellare gli oggetti.

Modifica: Poiché HttpContextLifecycle è globale e non per contenitore, penso che un approccio nested container sarebbe la soluzione per ottenere un controllo più fine sulla durata dell'oggetto durante una richiesta Http.

+0

Grazie, ma sembra disporre di tutti gli oggetti con ambito Http, non solo quelli dell'istanza contenitore corrente. –

+0

@ guillegr123 - 'HttpContextLifecycle' è globale, non per contenitore. – PHeiberg

+0

Se si desidera controllare la durata di oggetti specifici all'interno di un 'HttpRequest', penso che si dovrebbe andare con un [contenitore annidato] (http://codebetter.com/jeremymiller/2010/02/10/nested-containers-in- structuremap-2-6-1 /) approccio. – PHeiberg

Problemi correlati