2011-11-09 16 views
12

HttpWebReponse implementa l'interfaccia IDisposable, ma perché non esiste il metodo Dispose. Contiene solo il metodo Close. Il pattern using sarà ancora disponibile per questa classe?perché non esiste un metodo Dispose su HttpWebResponse

+0

La [HttpWebResponse] (http://msdn.microsoft.com/en-us/library/system.net.httpwebresponse.aspx) dovrebbe essere un metodo Dispose, come specificato qui: [WebResponse.Dispose Method @ msdn] (http://msdn.microsoft.com/en-us/library/ff928381.aspx) –

+0

BTW - Forse questo è cambiato a un certo punto. ora 'HttpWebResponse response = ...; '' 'response.Dispose();' compila. – ToolmakerSteve

risposta

22

HttpWebResponse implements Interfaccia IDisposable esplicitamente. Quindi puoi chiamare Dispose solo quando lanci HttpWebResponse su IDisposable. Il metodo Close di HttpWebResponse chiama Dispose internamente.

HttpWebResponse response = // assigned from somewhere 
IDisposable disposableResponse = response as IDisposable; 

disposableResponse.Dispose(); 

Dal HttpWebResponse implementa IDisposable è possibile utilizzarlo con una con-dichiarazione.

HttpWebResponse response = // assigned from somewhere 

using(response) { 
    // do your work; 
} 
+0

cosa intendi esplicitamente – user705414

+0

@ user705414: vedi questa questio su stackoverflow http://stackoverflow.com/questions/143405/c-interfaces-implicit-and-explicit-implementation – Jehof

+0

perché viene implementato in modo esplicito? – jgauffin

Problemi correlati