4
​​

是50,000条记录(实际上还有很多,但我们从小开始)的列表。我试图序列化为一个JSON文件:F#DataContractJsonSerializer StackOverflowException

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

什么建议吗?

回答

5

您不应该尝试以这种方式序列化F#列表。将其转换为List.toArray的数组。

(我期望DataContract串行看到列为嵌套“第一” /“休息”的数据结构,这意味着的Json/XML,这是不是你想要的50000树的深度。)

+0

的伎俩我为了笑声,我将列表中的10个元素分配给它,并且看起来好像它坚持了列表的“内部结构” - 如果我考虑它,这是有意义的;谢谢 – akaphenom 2010-04-28 19:36:01