首页 文章

FSharp.Data可选类型抛出异常

提问于
浏览
3

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

<code>23</code>

FSharp.Data正确地将“Code”的类型推断为选项int . 我的问题是当节点为空时如下:

<code />

我得到以下异常

<StartupCode $ FSharp-Data>中缺少值 . $ TextRuntime.GetNonOptionalValue@109-4.Invoke(String message)在C:\ Git \ FSharp.Data \ src \ CommonRuntime \ TextRuntime.fs:第109行

有什么办法我可以取回Option.None而不是抛出异常吗?

编辑:对于推断为选项字符串的类型,这按预期工作 .

1 回答

  • 0

    你尝试过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
    

相关问题