close var XDocument.Load方法/方法

时间:2012-01-04 19:00:21

标签: c# xml linq-to-xml

如何关闭以这种方式调用的文档:

var xmlDoc = XDocument.Load(new XmlTextReader(Server.MapPath("Nc.xml")));

感谢

2 个答案:

答案 0 :(得分:3)

XmlTextReader实现IDisposable。通常,只要不再需要资源允许系统关闭打开的句柄等,就应该调用IDisposable.Dispose()。

IDisposable的最佳使用模式是使用using语法,它将在隐式try..finally包装器中自动调用IDisposable.Dispose():

using (var reader = new XmlTextReader(Server.MapPath("Nc.xml")))
{
    var xdoc = XDocument.Load(reader);
    { .. do xdoc work here .. }
} // reader disposed here

或者如果您希望将xdoc保留很长时间以进行其他工作但希望尽快关闭文件,请按以下方式执行:

XDocument xdoc = null;
using (var reader = new XmlTextReader(Server.MapPath("Nc.xml")))
{
    xdoc = XDocument.Load(reader);
} // reader disposed here

{ .. do xdoc work here .. }

答案 1 :(得分:1)

读者完成后,它将自动关闭所读取的内容。

否则通过

挂起GC的引用
xmlDoc = null;

将拆除任何内部开放物品。