2011-11-09 18 views
12

HttpWebReponse implementuje interfejs IDisposable, ale dlaczego nie ma metody Dispose. Zawiera tylko metodę Close. Czy wzór będzie nadal dostępny dla tej klasy?dlaczego nie ma metody usuwania na HttpWebResponse

+0

Sieć [HttpWebResponse] (http://msdn.microsoft.com/en-us/library/system.net.httpwebresponse.aspx) powinien być w sposób unieszkodliwić, jak określono tutaj [WebResponse.Dispose Sposób @ msdn] (http://msdn.microsoft.com/en-us/library/ff928381.aspx) –

+0

BTW - Być może to się zmieniło w pewnym momencie. teraz 'HttpWebResponse response = ...;' '' response.Dispose(); 'kompiluje. – ToolmakerSteve

Odpowiedz

22

HttpWebResponse implements Interfejs IDisposable jawnie. Możesz więc zadzwonić pod numer Dispose tylko wtedy, gdy rzucisz HttpWebResponse na IDisposable. Metoda HttpWebResponse Close wywołuje Dispose wewnętrznie.

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

disposableResponse.Dispose(); 

Od HttpWebResponse realizuje IDisposable można go używać z wykorzystaniem-deklaracji.

HttpWebResponse response = // assigned from somewhere 

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

co masz na myśli jawnie – user705414

+0

@ user705414: zobacz to zadanie na stackoverflow http://stackoverflow.com/questions/143405/c-interfaces-implicit-and-explicit-implementation – Jehof

+0

dlaczego jest implementowany jawnie? – jgauffin

Powiązane problemy