【发布时间】:2015-11-11 00:26:26
【问题描述】:
我在通过 F# 数据中的 XML 类型提供程序写入时遇到了一些问题。
这是我正在加载的文件:
<authors>
<science>
<author name="Paul Feyerabend" born="1924" />
<author name="Thomas Kuhn" />
</science>
<mathematics>
<author name="Bertrand Russell" />
<author name="Ludwig Wittgenstein" born="1889" />
<author name="Alfred North Whitehead" died="1947" />
</mathematics>
</authors>
我已将作者分成多个子类别,因此每次我想添加作者时都不必重写整个文件(这是正确的还是我遗漏了什么?)
这里是代码:
open FSharp.Data
open System.IO
type Writers = XmlProvider<"../TestProvider/Writers.xml">
let writers = Writers.Load(File.OpenText("../TestProvider/Writers.xml"))
[<EntryPoint>]
let main argv =
printfn "%A" argv
Array.append writers.Science.Authors [| Writers.Author("Richard Feynman", Some 1918) |] |> ignore
0 // return an integer exit code
这让我犯了以下错误:
System.TypeInitializationException was unhandled
Message: An unhandled exception of type 'System.TypeInitializationException' occurred in TestProvider.exe
Additional information: The type initializer for '<StartupCode$TestProvider>.$Program' threw an exception.
【问题讨论】:
-
当您运行程序时,
../TestProvider/Writers.xml是否仍然存在于那个 相对 路径中? -
谢谢,它似乎不喜欢相对路径,但是,它没有将记录保存到 XML。我的方法错了吗?