我正在尝试使用 FSharp.Data 第三方库,但在 The type 'XmlProvider' is not defined 类上收到错误 XmlProvider

namespace KMyMoney

open FSharp.Data

  module Read =

    let xml = File.ReadAllText("KMyMoneySampleFile.xml")
    type KMyMoneySource = XmlProvider<xml>

我正在使用 NuGet 来获取库。库是“FSharp.Data 1.1.8”

当我输入 FSharp.Data. 时,会给出四个选项: CsvFreebaseOperatorsJsonRuntimeImplementation

我错过了什么吗?我对 F# 比较陌生。所以,对不起,这个简单的问题。我查看了 GitHub,但没有看到任何提及此问题的内容。我正在用 F# 创建一个库。

最佳答案

<> 之间的参数是类型提供程序的 Sample 参数,必须是编译时常量。该示例用于推断 xml 的结构。

试试这个:

namespace KMyMoney

open FSharp.Data

module Read =

    type KMyMoneySource = XmlProvider<"KMyMoneySampleFile.xml">

然后做
let xml = KMyMoneySource.Load("KMyMoneySampleFile.xml")

或者,如果您正在读取用作 XmlProvider 示例参数的相同文件,请执行以下操作:
let xml = KMyMoneySource.GetSample()

请注意,类型提供程序是 F# 3.0 的一项功能,因此这只适用于 VS2012 或更高版本。如果你使用 VS2010,你只会得到一堆语法错误。

关于f# - 'XmlProvider' 类型未定义,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17625514/

10-09 15:53