F# 数据可选类型引发异常
我有一些Xml,其中一个节点如下: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
<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推断内容时,这方面更精细的信息再次具有含义。。。