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
Другие вопросы по тегам