Я пытаюсь использовать XmlProvider
из FSharp.Data
, и я столкнулся с меньшей проблемой. API, с которым я работаю, требует, чтобы HTTP-заголовок отправлялся с Accept
и Accept-Language
. Теперь, если я делаю это ..F # XmlProvider и HTTP-заголовки
let afRequestString url =
Http.RequestString(
url,
httpMethod="GET",
headers = [ Accept HttpContentTypes.Xml; AcceptLanguage "sv-se,sv" ])
Это будет работать нормально, к сожалению, я не могу сделать эту работу непосредственно с XmlProvider как этот type foo = XmlProvider<afRequestString "bar">
, и это не будет работать:
let foo = afRequestString "bar"
type bar = XmlProvider<foo>
В жалоба от компилятора заключается в том, что Sample
, предоставленный XmlProvider
, должен быть статическим и постоянным, что для меня немного странно, потому что из того, что я понимаю, let-bindings неизменяемы, поэтому они в природе постоянны. Во всяком случае, единственное, что будет работать, что я обнаружил, что делает это таким образом
File.WriteAllText("foo.xml", afRequestString "foo") |> ignore
type bar = XmlProvider<"foo.xml">
Но это действительно кажется, что чрезмерно сложный способ сделать это. Разве нет более простого способа сделать это?
Да, это то, что я закончил делать. Просто хотел узнать, есть ли более простой способ сделать это или нет. Но тогда у меня была правильная идея, огромное спасибо! –
Другой вариант - отправить PR на F # Data и добавить эту функцию :) –