F# DataContractJsonSerializer StackruException

dataElementsList : TypesAndData.DataElement list

это список из 50000 записей (на самом деле еще много, но давайте начнем с малого). Я пытаюсь сериализовать в файл JSON:

let ser = Json.DataContractJsonSerializer(typeof<TypesAndData.DataElement list>) 
use ofs = File.OpenWrite(fileName)
let result = ser.WriteObject(ofs, dataElementsList)

и получаю печально известную StackruException. точнее:

Необработанное исключение типа "System.StackruException" произошло в FSharp.Core.dll

любой совет?

1 ответ

Решение

Вы не должны пытаться сериализовать список F# таким способом. Преобразуйте его в массив с List.toArray,

(Я ожидаю, что сериализаторы DataContract видят списки как вложенные структуры данных 'first' / 'rest', что означает 50000-ю глубину дерева Json/Xml, а это не то, что вам нужно.)

Другие вопросы по тегам