我有一些 Xml,其中一个节点如下:
<code>23</code>
FSharp.Data 正确地将“代码”的类型推断为选项 int。我的问题是节点为空时如下所示:
<code />
我得到以下异常
Value is missing at <StartupCode$FSharp-Data>.$TextRuntime.GetNonOptionalValue@109-4.Invoke(String message) in C:\Git\FSharp.Data\src\CommonRuntime\TextRuntime.fs:line 109
有什么方法可以取回 Option.None 而不是抛出异常?
编辑:对于推断为选项字符串的类型,这按预期工作。
最佳答案
您尝试过 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
关于f# - FSharp.Data 可选类型抛出异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31155015/