2009-07-01 4 views
4

Vielleicht ist meine Augen täuschen mich, aber wie kommt es, dass in .NET 2.0, Entsorgen XmlReader implementiert, aber nicht über eine Methode Dispose()? Ich sehe, es hat Dispose (bool), aber keine parameterlose Überladung.XmlReader und IDisposable

Antwort

2

Es implementiert explizit System.IDisposable.Dispose(). Dispose (boolean) ist eine normale Methode, die das tut ...

protected virtual void Dispose(bool disposing) 
{ 
    if (this.ReadState != ReadState.Closed) 
    { 
     this.Close(); 
    } 
} 
+0

Dank. Ich wusste, dass es etwas Einfaches war, über das ich gerade beschönigt hatte. –

1

... so müssen Sie es für ex aufrufen. Auf diese Weise

XmlReader r = XmlReader.Create(s); 
    ((IDisposable)r).Dispose(); 
+0

Ein using-Block funktioniert auch, weil er implizit IDisposable darstellt. –

+0

... Ich nehme an, ich hätte das Wort "implizit" nicht verwenden sollen, wenn man den Kontext der Konversation betrachtet. –

+0

Nehme ich richtig an, dass das Aufrufen der .Close() -Methode den gleichen Zweck erfüllt? – ganders