访问没有名称声明的变量(只是新关键字)

时间:2011-04-30 13:45:46

标签: c#

我有一个名为dS的DataSet,我想在其中加载XML。

所以我会使用函数dS.ReadXml();

ReadXml函数的参数是XmlTextReader对象。

如果我将对象传递给

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

将加载数据集。但是稍后,我想关闭那个XmlTextReader对象。虽然我没有用

之类的名称声明它
XmlTextReader reader = new XmlTextReader(somepath);

如何关闭阅读器?

2 个答案:

答案 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。