Comment sérialiser les objets en .NET? (OutOfMemory Exceptions)

Je suis en utilisant la sérialisation pour "enregistrer" dans mon application. Mais lorsque les données sont trop grandes (15+ MO) je commence à avoir des OutOfMemory exceptions.

J'ai donc de nombreux objets et ils sont en relation avec d'autres petits objets, je crois que c'est à l'origine de trop de puissance de traitement et des données dans la mémoire.

Mon code est sur cette base, presque les mêmes:

http://www.codeproject.com/KB/vb/TreeViewDataAccess.aspx

Edit :

  1. Je n'ai pas utiliser la sérialisation personnalisée, tout est fait par [Sérialisation] attributs. L'exclusion de certains champs.

  2. Je sérialiser autant d'objets et de classes personnalisées. Comprend Dictionnaire, des structures et des tas d'autres trucs.

  3. Je sérialiser dans un fichier.

  4. - Je utiliser XmlSerializer

P. S. j'ai 4 GO de mémoire physique.

Solution

Merci pour les réponses, mon problème a été trouvé pour être avec XmlSerializer et j'ai de s'en débarrasser. La sérialisation binaire fonctionne très bien avec les données que j'ai.

  • Ce type d'objet s'agit-il? Et ce que la sérialisation cadre utilisez-vous? Les données d'un arbre? ou un graphique? (c'est à dire il y a plus d'une voie à n'importe quel objet)?
  • C'est tellement de nombreux objets liés, y compris beaucoup de classes personnalisées ainsi que d'un treeview 🙂
  • Je ne suis pas à l'aide d'un cadre spécial à l'aide .NET de sérialisation (.NET Framework 2.0).
  • mais sont-ils interconnectés... ceci a un impact...
  • Bonne question, ils pourraient en fait. J'ai perdu le compte. N' .NET en double au lieu d'essayer de comprendre les liens?
  • Qui dépend de l'autre question que j'avais posée: que la sérialisation cadre utilisez-vous? BinaryFormatter? XmlSerializer? DataContractSerializer? JSON? etc?
  • Désolé, maintenant je vois. C'est BinaryFormatter
  • Comment au sujet de l'affichage d'un exemple de votre code de sérialisation?
  • J'ai regardé de nouveau et d'exception a été dans le XmlSerializer, j'ai utiliser les deux. première XmlSerializer pour Treeview normale serilization pour le reste.

InformationsquelleAutor dr. evil | 2009-04-02