2011-04-30 42 views
0

我有一個名爲dS的DataSet,我想要加載XML。訪問變量聲明沒有名稱(只是新的關鍵字)

所以我會使用的功能dS.ReadXml();

ReadXml功能放慢參數爲XmlTextReader對象。

如果我通過對象作爲

ds.ReadXml(new XmlTextReader(Application.StartupPath + "\\MyDataSource.xml")); 

數據集將被加載。但後來,我想關閉那個XmlTextReader對象。雖然我沒有聲明它的名字像

XmlTextReader reader = new XmlTextReader(somepath); 

我怎樣關閉閱讀器?

+0

你已經回答自己了:用變量:) – 2011-04-30 13:52:32

回答

2

你需要使用一個變量,否則你不能訪問它。

而當你在它,使用using聲明:

string path = Path.Combine(Application.StartupPath, "MyDataSource.xml")); 
using (var reader = new XmlTextTreader(path)) 
{ 
    ds.ReadXml(reader); 
} 

退出using聲明的範圍時,using聲明上自動調用readerDispose

注意:您應該使用Path.Combine而不是自己來複制路徑。爲您節省很多麻煩。

0

的XmlTextReader目的通過數據集對象,這就是爲什麼它不是垃圾收集使用。

現在,如果你想起來了,這意味着的DataSet對象控制的XmlTextReader *對象。

所以最好的方法是調用:

ds.Dispose() 

這將導致的DataSet對象釋放其資源,包括他的XmlTextReader *對象。

相關問題