Тип 'XmlProvider' не определен
Я пытаюсь использовать 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.
Есть четыре варианта: Csv
, FreebaseOperators
, Json
, а также RuntimeImplementation
,
Я что-то пропустил? Я относительно новичок в F#. Итак, извините за простой вопрос. Я смотрел на GitHub, но не видел упоминаний об этой проблеме. Я создаю библиотеку в F#.
3 ответа
Параметр между <>
это 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, вы просто получите кучу синтаксических ошибок.
Данные должны быть доступны во время компиляции, что достигается путем помещения ссылки на файл в угловые скобки следующим образом (обратите внимание, что это строковый литерал, содержащий путь к файлу, а не строковая привязка, содержащая данные). Вы также можете добиться этого, поместив строковый литерал, содержащий формат в скобках:
type Stocks = CsvProvider<"../docs/MSFT.csv">
let csv = new CsvProvider<"1,2,3", HasHeaders = false, Schema = "Duration (float<second>),foo,float option">()
Смотрите здесь для получения дополнительной информации.
Проверьте эту ссылку. В основном вам нужно добавить System.Xml.Linq.dll
также как ссылка на ваш проект.