¿Cómo poner en práctica esta clase IDisposable si no tiene un método Dispose?
-
30-09-2019 - |
Pregunta
FtpWebResponse implementos IDisposable, pero no tiene un Desechar método. ¿Cómo es posible?
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.