4
dataElementsList : TypesAndData.DataElement list 

est une liste de 50 000 enregistrements (en fait beaucoup plus mais commençons petit). Je suis en train de sérialisation dans un fichier JSON:F # DataContractJsonSerializer StackOverflowException

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

et je reçois le StackOverflowException infâme. pour être précis:

Une exception non gérée du type 'System.StackOverflowException' a eu lieu dans FSharp.Core.dll

des conseils?

Répondre

5

Vous ne devriez pas essayer de sérialiser une liste F # de cette façon. Convertissez-le en tableau avec List.toArray.

(Je pense que les serializers DataContract voir les listes comme imbriquées « première »/structures de données « repos », ce qui signifie 50000 profondeur de l'arbre de JSON/Xml, ce qui est pas ce que vous voulez.)

+0

a fait l'affaire I pour gloussements j'ai paré la liste à 10 éléments et il semblait que cela persistait la "structure interne" de la liste - ce qui est logique si je pense à ce sujet; Je vous remercie – akaphenom