2012-01-04 46 views

回答

3

XmlTextReader實現IDisposable。一般情況下,只要不再需要資源以允許系統關閉打開的句柄等,就應該調用IDisposable.Dispose()。

IDisposable的最佳使用模式是使用using語法,它將在隱try..finally包裝自動調用IDisposable.Dispose():

using (var reader = new XmlTextReader(Server.MapPath("Nc.xml"))) 
{ 
    var xdoc = XDocument.Load(reader); 
    { .. do xdoc work here .. } 
} // reader disposed here 

,或者如果你想保持周圍XDOC很長一段時間的其他工作,但要儘快關閉該文件,做這種方式:

XDocument xdoc = null; 
using (var reader = new XmlTextReader(Server.MapPath("Nc.xml"))) 
{ 
    xdoc = XDocument.Load(reader); 
} // reader disposed here 

{ .. do xdoc work here .. } 
+0

謝謝,這是一個很好的做法! – Fm3 2012-01-12 23:46:29

1

一旦讀者完成後,它會關閉它已經自動讀取。

否則掛參考出去GC通過

xmlDoc = null; 

將推倒任何內部打開的項目。

+0

謝謝f或評論HTH。 – Fm3 2012-01-12 23:47:17