Как повторно использовать веб-клиент для HtmlProvider? - PullRequest
0 голосов
/ 26 февраля 2020

Я загружаю несколько страниц, используя одного и того же типа провайдера, HtmlProvider :

type Article = HtmlProvider<"https://en.wiktionary.org/wiki/giraffe">

let sheepArticle = Article.Load "https://en.wiktionary.org/wiki/sheep"
let koalaArticle = Article.Load "https://en.wiktionary.org/wiki/koala"
let pandaArticle = Article.Load "https://en.wiktionary.org/wiki/panda"
...

Можно ли каким-либо образом настроить провайдера таким образом, чтобы используемый там веб-клиент использовался повторно?

Я ничего не нашел в документах. Я делаю много подобных звонков, так что это будет существенной оптимизацией.

1 Ответ

2 голосов
/ 26 февраля 2020

Нет способа настроить HtmlProvider для автоматического выполнения этого за кулисами, но вы можете легко создать свой собственный WebClient для загрузки страниц и затем использовать метод Parse указанного типа (вместо используя Load для загрузки и анализа):

type Article = HtmlProvider<"https://en.wiktionary.org/wiki/giraffe">

let wc = new WebClient()
let sheepArticle = Article.Parse(wc.DownloadString("https://en.wiktionary.org/wiki/sheep"))
let koalaArticle = Article.Parse(wc.DownloadString("https://en.wiktionary.org/wiki/koala"))
let pandaArticle = Article.Parse(wc.DownloadString("https://en.wiktionary.org/wiki/panda"))
...