我正在尝试使用FSharp.Data XmlProvider。 根据示例,您可以访问嵌套类型并创建一个函数,该函数将接收其中一种类型的参数。 https://github.com/fsharp/FSharp.Data/blob/master/samples/library/XmlProvider.fsx(第177行)
但是,当我尝试执行以下操作时:
type businessesT = XmlProvider<"Businesses.xml">
type businessT = businessesT.DomainTypes.Business
let testfunc (b:businessesT.DomainTypes.Business) =
b
它似乎工作,直到我实际编译,然后我得到
错误FS0039:未定义“业务”类型
更新: 可以使用FSharp.Data(XmlProvider.fsx)中的示例重现该问题 在第205行之后添加类型别名
type Rss = XmlProvider<"http://tomasp.net/blog/rss.aspx">
type test = Rss.DomainTypes.Channel
奇怪的是具有printDiv功能的样本正在工作......
答案 0 :(得分:0)
这很可能是由于加载类型提供程序时遇到的一些问题 - 如果编译器无法加载类型提供程序,那么它就无法运行它,因此不会定义任何提供的类型,如Business
。< / p>
您是在脚本文件中使用#r
,还是通过项目中的“添加引用”引用类型提供程序?如果您使用的是#r
,请检查该行是否有任何错误消息。如果是项目,请检查编译器输出的其他错误消息。
我已经列出了some common reasons why type provider fails to load in another answer。
答案 1 :(得分:0)
这可能与"type provider" not recognized when building project的问题相同,已在FSharp.Data 1.1.10中修复