我想我一定在对类型提供程序的(有限)理解中缺少一些重要的东西。
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>
有什么想法吗?
您使用的是哪个版本的 F# 数据?您如何引用类型提供程序?
我刚刚使用最新版本的 F# 数据(从源代码构建)尝试了以下内容,这工作正常 - 但是,最新版本修复了许多错误,因此很可能这在早期不起作用。您可以使用版本 FSharp.Data 2.0.0-alpha6(在 NuGet 上可用)尝试此操作吗:
#r "System.Xml.Linq.dll"
#r @"C:TomasPublicFSharp.DatabinFSharp.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