Wie funktioniert implementieren diese Klasse IDisposable, wenn es nicht eine Dispose-Methode hat?
-
30-09-2019 - |
Frage
FtpWebResponse implementiert IDisposable, aber es ist noch kein Entsorgen Methode. Wie ist das möglich?
Lösung
Es hat die Methode Dispose durch Vererbung, aber es ist eine explizite Implementierung. Um es zu nennen, müssten Sie verwenden
((IDisposable)myObject).Dispose();
Oder, natürlich, nur wickeln Sie es in einem using
Block, da es den expliziten Aufruf für Sie.
Andere Tipps
Die Umsetzung in der Basisklasse WebResponse finden Sie unter http: / /msdn.microsoft.com/en-us/library/system.net.webresponse_methods.aspx
Wenn Sie eine interface
explizit implementieren, werden Sie nicht die Methode in der Liste erhalten. Sie werden zur Besetzung haben, dass Objekt implementiert interface
um Zugang zu erhalten zu dieser Methode.
public class MyClass : IDisposable
{
void IDisposable.Dispose()
{
throw new NotImplementedException();
}
}
Referenz: http://msdn.microsoft.com/en-us /library/ms173157.aspx
Es ist in der Basisklasse WebResponse implementiert
void IDisposable.Dispose()
{
try
{
this.Close();
this.OnDispose();
}
catch
{
}
}
alt text http://img227.imageshack.us/img227/2428/redgatesnetreflector .png
Sie erbt von System.Net.WebResponse welche Geräte diese Methoden.