我有一个名为dS的DataSet,我想在其中加载XML。
所以我会使用函数dS.ReadXml();
ReadXml
函数的参数是XmlTextReader
对象。
如果我将对象传递给
ds.ReadXml(new XmlTextReader(Application.StartupPath + "\\MyDataSource.xml"));
将加载数据集。但是稍后,我想关闭那个XmlTextReader
对象。虽然我没有用
XmlTextReader reader = new XmlTextReader(somepath);
如何关闭阅读器?
答案 0 :(得分:2)
您需要使用变量,否则无法访问它。
在您使用时,请使用using
声明:
string path = Path.Combine(Application.StartupPath, "MyDataSource.xml"));
using (var reader = new XmlTextTreader(path))
{
ds.ReadXml(reader);
}
退出using
语句的范围时,Dispose
语句会自动调用reader
上的using
。
注意:您应该使用Path.Combine
而不是自己连接路径。为您省去了很多麻烦。
答案 1 :(得分:0)
XmlTextReader 对象由 DataSet 对象使用,这就是它不被垃圾回收的原因。
现在,如果你想到它,就意味着 DataSet 对象控制 XmlTextReader *对象。
所以最好的方法是致电:
ds.Dispose()
这将导致 DataSet 对象释放其资源,包括 XmlTextReader * object。