如何在XDocument.Load(字符串uri)上设置超时?

时间:2010-06-04 00:27:11

标签: c# .net timeout linq-to-xml

有没有办法在System.Linq.Xml.XDocument.Load(string uri)上设置超时?或者我应该使用Implement C# Generic Timeout中描述的技术吗?

1 个答案:

答案 0 :(得分:7)

据我所知,没有任何内置功能。您可以使用WebRequest实例(可以设置超时)自行获取XML内容,然后将XML数据直接传递给XDocument.Load方法。

从技术上讲,最“强大”的解决方案是自己实现XmlResolverGetEntity()实现中使用WebRequest来执行超时。然后根据您的XmlReader创建XmlResolver,并将XmlReader传递给XDocument.Open

我之所以说“更强大”的原因是,如果XML文件引用了Web服务器上的其他实体(例如DTD),那么您可能希望超时适用于同时也不只是初始请求。