Pregunta

FtpWebResponse implementos IDisposable, pero no tiene un Desechar método. ¿Cómo es posible?

¿Fue útil?

Solución

Se tiene el método Dispose través de la herencia, pero es una implementación explícita. Llamarlo, que tendría que utilizar

((IDisposable)myObject).Dispose();

O, por supuesto, simplemente se envuelve en un bloque using, como lo hace la llamada explícita para usted.

Otros consejos

Su implementado en el WebResponse clase base, consulte http: / /msdn.microsoft.com/en-us/library/system.net.webresponse_methods.aspx

Cuando se implementa un interface explícitamente, este beneficio no incluye el método en el anuncio. Tendrá que fundido ese objeto para interface implementado para tener acceso a ese método.

public class MyClass : IDisposable
{
    void IDisposable.Dispose()
    {
        throw new NotImplementedException();
    }
}

Referencia: http://msdn.microsoft.com/en-us /library/ms173157.aspx

Se implementa en la clase base WebResponse

void IDisposable.Dispose()
{
try
{
    this.Close();
    this.OnDispose();
}
catch
{
}
}

alt text http://img227.imageshack.us/img227/2428/redgatesnetreflector .png

System.Net.WebResponse que implementa estos métodos.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top