我有以下函数,它采用url路径并获取读者。由于我无法关闭阅读器并退回它。调用者可以关闭返回的阅读器对象。
public XmlReader GetXMLContent(string Path)
{
XmlTextReader responseReader= new XmlTextReader(XmlUrlPath);
return responseReader;
}
XmlTextReader myReader = GetXMLContent("http://sample.xml");
while() // loop through all the elements
{
}
myReader.close(); // close the reader
最佳答案
是的,一点没错。当方法返回时,调用者已经有效地拥有了读取者的所有权(在这种情况下)。
诚然我会使用using
语句代替:
using (XmlTextReader reader = GetXmlContent("http://sample.xml"))
{
...
}
...使用您当前建议的代码,如果引发异常,您将不会关闭阅读器。