2009-07-01 14 views
4

おそらく私の目は私をだましていますが、.NET 2.0ではXmlReaderはDisposeを実装していますが、Dispose()メソッドはありません。 Dispose(bool)がありますが、パラメータのないオーバーロードはありません。XmlReaderとIDisposable

答えて

2

明示的にSystem.IDisposable.Dispose()を実装しています。 Dispose(boolean)はこれを行う通常の方法です。

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

ありがとう。私はそれが私がちょうど光っていた簡単な何かであることを知っていた。 –

1

...これをexと呼びます。このように

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

usingブロックは、IDisposableに暗黙的にキャストされるためにも機能します。 –

+0

...私は会話の文脈を考えると、「暗黙の」という言葉を使わないでください。 –

+0

.Close()メソッドの呼び出しが同じ目的を果たすと正しく仮定していますか? – ganders