未定义XmlProvider FS0039中的DomainTypes

时间:2013-08-14 22:53:00

标签: f# type-providers f#-data

我正在尝试使用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功能的样本正在工作......

2 个答案:

答案 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中修复