Serialization Xml en memoire

[Résolu]
Signaler
Messages postés
172
Date d'inscription
mardi 7 janvier 2003
Statut
Membre
Dernière intervention
3 juin 2011
-
Messages postés
172
Date d'inscription
mardi 7 janvier 2003
Statut
Membre
Dernière intervention
3 juin 2011
-
Bonjour,

Je souhaite serializer mon objet en xml directement en memoire pour le zip en suite sans passer par un fichier physique temporaire.

Voici ce que j'ai fait mais ca ne marche pas.

    zip = new ZipOutputStream(new FileStream(Filename, FileMode.Create, FileAccess.Write));
    ZipEntry ze = new ZipEntry("Référentiel.xml");       

   MemoryStream ms = new MemoryStream();
   XmlSerializer serializer = new XmlSerializer(data.GetType());
   serializer.Serialize(ms, data);
   byte[] buffer = new byte[ms.Length];
   ms.Read(buffer, 0, buffer.Length);            
   zip.PutNextEntry(ze);                
   zip.Write(buffer, 0, buffer.Length);

Merci

CedKat

3 réponses

Messages postés
1024
Date d'inscription
mardi 4 février 2003
Statut
Membre
Dernière intervention
7 juin 2010
65
Hello,

Après un moment de recherche, je me suis rendu compte que tu utilisais la librairie SharpZipLib, ç'aurait pu aider si tu l'avais précisé.

Enfin, j'ai trouvé ton problème, essaie comme ça :

    zip = new ZipOutputStream(new FileStream(Filename, FileMode.Create, FileAccess.Write));
  ZipEntry ze = new ZipEntry("Référentiel.xml");        

  MemoryStream ms = new MemoryStream();
  XmlSerializer serializer = new XmlSerializer(data.GetType());
  serializer.Serialize(ms, data);
  ms.Position =0;
  byte[] buffer = new byte[ms.Length];
  ms.Read(buffer, 0, buffer.Length);             
  zip.PutNextEntry(ze);                 
  zip.Write(buffer, 0, buffer.Length);

Amicalement, SharpMao
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
58
Avec .NET 2, y'a System.IO.Compression si jamais...

<hr size="2" />VC# forever
Messages postés
172
Date d'inscription
mardi 7 janvier 2003
Statut
Membre
Dernière intervention
3 juin 2011

Merci

CedKat