Как установленный тайм-аут на XDocument. Загрузка (представляют uri в виде строки)?

Есть ли способ установить тайм-аут в Системе. Linq. Xml. XDocument. Загрузка (представляют uri в виде строки)? Или я должен использовать технику, описанную в Реализации C# Универсальный Тайм-аут?

6
задан Community 23 May 2017 в 10:27
поделиться

1 ответ

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

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

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

7
ответ дан 17 December 2019 в 00:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: