FtpWebResponse реализует IDisposable, но у него нет метода Dispose. Как это возможно?
Реализовано в базовом классе WebResponse, см. http://msdn.microsoft.com/en-us/library/system.net.webresponse_methods.aspx
У него есть метод Dispose через наследование, но это явная реализация. Чтобы позвонить, вы должны использовать
((IDisposable)myObject).Dispose();
Или, конечно, просто оберните его в блок using, как это делает явный вызов для вас.
using
Когда вы реализуете interface явно, вы не получите метод в списке. Вам нужно будет привести этот объект к реализованному interface, чтобы получить доступ к этому методу.
interface
public class MyClass : IDisposable { void IDisposable.Dispose() { throw new NotImplementedException(); } }
Ссылка: http://msdn.microsoft.com/en-us/library/ms173157.aspx
Это реализовано в базовом классе WebResponse
void IDisposable.Dispose() { try { this.Close(); this.OnDispose(); } catch { } }
альтернативный текст http://img227.imageshack.us/img227/2428/redgatesnetreflector.png
Он наследуется от System.Net.WebResponse , который реализует эти методы.