2

我正在尝试使用 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 函数的示例正在工作......

4

2 回答 2

0

这很可能是由加载类型提供程序的一些问题引起的 - 如果编译器无法加载类型提供程序,则它无法运行它,因此不会Business定义任何提供的类型。

您是#r在脚本文件中使用,还是通过项目中的“添加引用”引用类型提供程序?如果您正在使用#r,请检查该行是否有任何错误消息。如果是项目,请检查编译器输出的其他错误消息。

我已经列出了类型提供程序无法在另一个答案中加载的一些常见原因

于 2013-08-15T01:08:41.777 回答
0

这可能与构建项目时无法识别的“类型提供程序”问题相同,该问题已在 FSharp.Data 1.1.10 中修复

于 2013-10-15T10:35:12.177 回答