dataElementsList : TypesAndData.DataElement list
是一个包含50,000条记录的列表(实际上还有很多记录,但让我们从小处开始)。我正在尝试序列化为JSON文件:
let ser = Json.DataContractJsonSerializer(typeof<TypesAndData.DataElement list>)
use ofs = File.OpenWrite(fileName)
let result = ser.WriteObject(ofs, dataElementsList)
我正在臭名昭着的StackOverflowException。确切地说:
未处理的类型异常 'System.StackOverflowException' 发生在FSharp.Core.dll
任何建议?
答案 0 :(得分:5)
您不应该尝试以这种方式序列化F#列表。将其转换为List.toArray
的数组。
(我希望DataContract序列化程序将列表视为嵌套的'first'/'rest'数据结构,这意味着JSON / Xml的树深度为50000,这不是您想要的。)