c# - close var XDocument.Load 方法/方式

标签 c# xml linq-to-xml

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

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

谢谢

最佳答案

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 .. }

关于c# - close var XDocument.Load 方法/方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8732384/

相关文章:

c# - 是否是 C# 十进制文化相关的

html - 如何使用 XPath 选择非空段落?

c# - 如何检查 XML 值是否存在?

javascript - 通过 Javascript 在 Alfresco 中解析 XML

c# - 访问具有特定值的 XElement

未检测到 C# XElement.Load 方法?

c# - 如何在另一个类的 CacheItemPolicy 上实现 UpdateCallback?

c# - 任务并行库异常句柄 "A task was canceled."

C# is operator with nullable types always false 根据 ReSharper

c# - 使用 LINQ 转换投影列表返回空值列表?