我正在尝试使用XmlProvider
的FSharp.Data
,我遇到了一个较小的问题。我正在处理的API需要发送包含Accept
和Accept-Language
的HTTP标头。现在,如果我这样做..F#XmlProvider和HTTP头
let afRequestString url =
Http.RequestString(
url,
httpMethod="GET",
headers = [ Accept HttpContentTypes.Xml; AcceptLanguage "sv-se,sv" ])
这将做工精细,可惜我不能直接与这样type foo = XmlProvider<afRequestString "bar">
的XmlProvider使这项工作,这将不工作,要么:
let foo = afRequestString "bar"
type bar = XmlProvider<foo>
的来自编译器的抱怨是提供给XmlProvider
的Sample
必须是静态的和常量的,这对我来说有点奇怪,因为根据我的理解,let-bindings是不可变的,所以它们本质上是不变的。 总之,将工作,我发现的唯一的事情是做什么的这样
File.WriteAllText("foo.xml", afRequestString "foo") |> ignore
type bar = XmlProvider<"foo.xml">
但这真的好像这样做的过于复杂的方式。有没有更简单的方法来做到这一点?
没错,这就是我最终做了。只是想知道是否有更简单的方法来做到这一点。但后来我有了正确的想法,非常感谢! – 2014-11-25 14:35:55
另一种选择是将PR提交给F#数据并添加此功能:) – 2014-11-25 14:38:21