F# XmlTypeProvider: "Индекс находился за пределами массива"
Я думаю, что мне не хватает чего-то важного в моем (ограниченном) понимании поставщиков типов.
XmlProvider не любит этот контент и говорит мне Index was outside the bounds of the array
, Я думаю, что это как-то связано с атрибутами: в любом случае, если я уберу X или Y, все будет хорошо.
<root>
<Points>
<Point X="0.0" Y="2.0"/>
<Point X="159.3546" Y="3.0"/>
</Points>
</root>
Есть идеи?
1 ответ
Решение
Какую версию F# Data вы используете? А как вы ссылаетесь на провайдера типов?
Я только что попробовал следующее с использованием последней версии F# Data (созданной из исходного кода), и это прекрасно работает - однако, последняя версия исправляет ряд ошибок, поэтому вполне возможно, что раньше это не работало. Можете ли вы попробовать это, используя версию FSharp.Data 2.0.0-alpha6 (доступна на NuGet):
#r "System.Xml.Linq.dll"
#r @"C:\Tomas\Public\FSharp.Data\bin\FSharp.Data.dll"
open FSharp.Data
type X = XmlProvider<"""<root>
<Points>
<Point X="0.0" Y="2.0"/>
<Point X="159.3546" Y="3.0"/>
</Points>
</root>""">
let x = X.GetSample()
x.Points.GetPoints().[1].X