почему нет метода Dispose на HttpWebResponse - PullRequest
15 голосов
/ 09 ноября 2011

HttpWebReponse реализует интерфейс IDisposable, но почему нет метода Dispose. Он содержит только метод Close. Будет ли using шаблон по-прежнему доступен для этого класса?

1 Ответ

24 голосов
/ 09 ноября 2011

HttpWebResponse реализует IDisposable интерфейс явно. Таким образом, вы можете вызывать Dispose только тогда, когда приведете HttpWebResponse к IDisposable. Close метод HttpWebResponse вызывает внутреннее удаление.

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

disposableResponse.Dispose();

Поскольку HttpWebResponse реализует IDisposable, вы можете использовать его с оператором использования.

HttpWebResponse response = // assigned from somewhere

using(response) {
  // do your work;
}
...