2014-02-10 5 views
1

형식 제공자에 대한 (제한적인) 이해에 필수적인 것을 놓치고 있어야합니다.F # XmlTypeProvider : "인덱스가 배열 경계를 벗어났습니다."

XmlProvider는이 콘텐츠를 좋아하지 않으며 Index was outside the bounds of the array이라고 알려줍니다. I 그것은 속성과 관련이 있다고 생각합니다. X 또는 Y를 제거하면 아무 문제가 없습니다.

<root> 
    <Points> 
     <Point X="0.0" Y="2.0"/> 
     <Point X="159.3546" Y="3.0"/> 
    </Points> 
</root> 

아이디어가 있으십니까?

답변

2

어떤 버전의 F # 데이터를 사용하고 있습니까? 그리고 타입 제공자를 어떻게 참조하고 있습니까?

나는 F # Data의 최신 버전 (소스에서 빌드 됨)을 사용하여 다음을 시도했지만 정상적으로 작동합니다. 그러나 최신 버전에서는 많은 버그를 수정하므로 이전 버전에서는 작동하지 않았을 가능성이 큽니다. 당신은 FSharp.Data 2.0.0-alpha6 (사용 가능한 on 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 
+0

그것은 v1.1.10했다. 이제 작동합니다. 감사! – Benjol

관련 문제