Как установить таймаут на XDocument.Load (строка uri)? - PullRequest
6 голосов
/ 04 июня 2010

Есть ли способ установить время ожидания для System.Linq.Xml.XDocument.Load (строка uri)? Или я должен использовать технику, описанную в Реализация общего времени ожидания C # ?

1 Ответ

7 голосов
/ 04 июня 2010

Насколько я знаю, нет ничего встроенного. Вы можете получить содержимое XML самостоятельно с помощью экземпляра WebRequest (который может установить время ожидания), а затем передать данные XML непосредственно методу XDocument.Load.

Технически, наиболее «надежным» решением было бы реализовать XmlResolver самостоятельно, который использует WebRequest в реализации GetEntity () для тайм-аута. Затем создайте XmlReader на основе вашего XmlResolver и передайте XmlReader на XDocument.Open.

Причина, по которой я говорю, что это было бы более "надежно", заключается в том, что если XML-файл ссылается на другие сущности на веб-сервере (например, DTD), то вы, вероятно, захотите, чтобы тайм-аут подал заявку на ну а не только начальный запрос.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...