在下面的代码中,我得到一个XmlNodeList
作为返回值从XmlDocument.SelectNodes()
我应该处理的XmlNodeList
foreach (XmlNode node in doc.SelectNodes(xPath))
{
// Do stuff
}
事实证明,XmlNodeList
实现IDisposable
。这是否意味着每次我想迭代XmlDocument.SelectNodes()
的返回值时,我都应该把它放在一个局部变量中,并确保它被丢弃(即将其置于using
块中)?
像这样:
using(XmlNodeList nodes = doc.SelectNodes(xPath))
{
foreach (XmlNode node in nodes)
{
// Do stuff
}
}
看看这个:http://stackoverflow.com/questions/14398798/why-is-xmlnodelist-disposable – Chris
@Chris:我看到了。虽然@AgentFire指出我应该调用Dispose()还是不全面,但我没有向我清楚,我明显应该这么做。它确实使'SelectNodes()'不太吸引人。 –
我同意 - 不得不处置它并不好玩。就我个人而言,我想我会忘记我曾经阅读过这些,并继续像以前一样不加处理...... – Chris