IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

serialisation binnaire du contenu d'un stream


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2006
    Messages : 22
    Par défaut serialisation binnaire du contenu d'un stream
    Bonjour,

    Est-il possible de faire de la serialisation binaire du contenu d'un stream ?

    une solution que j'ai trouvé (vraiment pas terrible ;-( ) c'est de faire un truc comme ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
            info.AddValue("StreamCount",i);
            for (int i=0;i<stream.Length;i++)
                info.AddValue("Stream"+i,stream.ReadByte());
    il existe une autre solution ?

    P.S. je débute en C# alors je suis ouvert à tout ;-)

    Merci Rdemont

  2. #2
    Membre éprouvé Avatar de Onlava
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2007
    Messages : 92
    Par défaut
    Quand tu dis serializer, parles-tu du système de serialisation du framework?
    Si oui, c'est absurde d'après-moi.
    Tu ferais mieux de simplement utiliser BinaryWriter et ecrire ton flux dans un ficher.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2006
    Messages : 22
    Par défaut
    Salut Onlava,

    Merci pour t'a réponse.... je suis pas très au point sur la serialisation binaire dans C#. Ce que je veux faire c'est de serialiser dans un champ d'une DB une surcharge d'un object MailMessage avec des attachment.

    Pour ce qui est des champs String ou MailAddress c'est pas trop un problème.

    En gros ce que je veux comme resultat c'est un gros binaire avec mon MailMessage, les adresses, et les attachment pour le sauver dans la DB et pourvoir le restaurer par la suite.

    donc si j'ai tout compris avec la serialisation binaire il faut faire la methode
    public virtual void GetObjectData(SerializationInfo info, StreamingContext context)
    en renseigner le info avec la methode add() et imossible de mettre un gros binaire dans cette methode ;(

    Bonne journée

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    547
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 547
    Par défaut
    Salut,

    d'une maniere generale pour travailler avec des blobs sur une BDD, je procede comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
                System.Runtime.Serialization.Formatters.Binary.BinaryFormatter format = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
                System.IO.MemoryStream mStr = new System.IO.MemoryStream();
     
                DummyObj obj = new DummyObj();
                obj.M_DummyMess = new object();
     
                format.Serialize(mStr, obj);
     
                byte[] data = mStr.GetBuffer();
                //Puis on sauvegarde les données
     
     
                //[...]
     
                DummyObj objDeserialize = format.Deserialize(new System.IO.MemoryStream(data as byte[])) as DummyObj;
    Par contre, en essayant de le faire avec un object MailMessage, je viens de me faire copieusement insulter par le compilo car MailMessage n'est pas serializable.

    En esperant que ca t'aide.

  5. #5
    Membre éprouvé Avatar de Onlava
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2007
    Messages : 92
    Par défaut
    il faut renseigner le compilo en inscrivant [Serializable] en en-tête de ta classe

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    [Serializable]
    class maClasse 
    {
    ...
    Avec ça tout devrait rouler. ++

Discussions similaires

  1. Recuperer le contenu d'une stream ? !
    Par tarekos dans le forum C#
    Réponses: 2
    Dernier message: 11/07/2008, 12h42
  2. Réponses: 4
    Dernier message: 05/09/2007, 14h32
  3. [Stream] Mettre le contenu d'un File dans un tableau de byte
    Par JohnBlatt dans le forum Entrée/Sortie
    Réponses: 6
    Dernier message: 25/08/2006, 14h18
  4. DirectSound et le streaming
    Par Shakram dans le forum DirectX
    Réponses: 57
    Dernier message: 09/06/2005, 11h05
  5. Comment imprimer le contenu d'un TStringGrid
    Par scorpiwolf dans le forum C++Builder
    Réponses: 2
    Dernier message: 19/06/2002, 15h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo