我正在尝试使用FSharp.Data
第三方库,但在XmlProvider
类上遇到错误The type 'XmlProvider' is not defined
。
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.
时,会给出四个选项:Csv
、FreebaseOperators
、Json
和RuntimeImplementation
。
我是不是遗漏了什么?我对F#比较陌生。所以,对于这个简单的问题,我很抱歉。我已经在GitHub上看过了,但没有看到任何关于这个问题的提及。我正在用F#创建一个库。
发布于 2013-07-15 20:27:16
<>
之间的参数是类型提供程序的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,你只会得到一堆语法错误。
发布于 2013-07-13 10:20:07
数据必须在编译时可用,这是通过将文件引用放在尖括号中来实现的(请注意,它是包含文件路径的字符串文字,而不是包含数据的字符串绑定)。您也可以通过将包含格式的字符串文本放在括号中来实现此目的:
type Stocks = CsvProvider<"../docs/MSFT.csv">
let csv = new CsvProvider<"1,2,3", HasHeaders = false, Schema = "Duration (float<second>),foo,float option">()
有关详细信息,请参阅here。
发布于 2013-07-13 20:38:59
看看这个link。基本上,您还需要添加System.Xml.Linq.dll
作为对项目的引用。
https://stackoverflow.com/questions/17625514
复制相似问题