F# 数据可选类型引发异常

F# 数据可选类型引发异常,f#,f#-data,F#,F# Data,我有一些Xml,其中一个节点如下: <code>23</code> <code /> FSharp.Data正确地将“Code”的类型推断为选项int。我的问题是当节点为空时,如下所示: <code>23</code> <code /> 我得到以下例外 值在.$TextRuntime处丢失。GetNonOptionalValue@109-4.在C:\Git\FSharp.Data\src\CommonRuntim

我有一些Xml,其中一个节点如下:

<code>23</code>
<code />
FSharp.Data正确地将“Code”的类型推断为选项int。我的问题是当节点为空时,如下所示:

<code>23</code>
<code />

我得到以下例外

值在.$TextRuntime处丢失。GetNonOptionalValue@109-4.在C:\Git\FSharp.Data\src\CommonRuntime\TextRuntime.fs中调用(字符串消息):第109行
有没有什么方法可以让我找回选项。没有,而是抛出一个异常


编辑:对于推断为选项字符串的类型,此操作与预期一样有效。

是否尝试了SampleIsList?这是一个工作良好的样品

#r "packages/FSharp.Data/lib/net45/FSharp.Data.dll"

#r "System.Xml.Linq"

open FSharp.Data

type Code = XmlProvider< """<samples><code>123</code><code /></samples>""", SampleIsList=true >

Code.Parse("<code>123</code>") = Some 123 //true
Code.Parse("<code />") = None //true

您可能需要包含一个缺少此值的示例。在代码为空的情况下包含一个附加示例可以防止异常。我的印象是,将类型推断为Option int就足够了。@kevin不是真的。和not existing与“非法”之间存在细微差别(这取决于很多方面,但仍然存在)。在从XML推断内容时,这方面更精细的信息再次具有含义。。。