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 d'objet differents?


Sujet :

C#

Vue hybride

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

    Informations forums :
    Inscription : Octobre 2006
    Messages : 46
    Par défaut Serialisation d'objet differents?
    bonjour à vous,
    vous qui êtes des experts, je fais appel à vos lumières pour m'éclairer sur le sentier obscur de la sauvegarde

    est-ce que c'est possible de sérialiser une série d'objets complètement différents dans un même fichier et de pouvoir les récupérer après
    je m'explique :
    j'ai un objet carte, qui contient des objets cellules, qui contienne des objets éléments
    est-ce que c'est possible de sauvegarder l'objet carte puis pour chaque cellule ce même objet cellule et les objets éléments qu'elles contiennent ?

    est-ce que c'est une bonne méthode pour sauvegarder mes données?

  2. #2
    Membre éclairé Avatar de bilb0t
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    378
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2003
    Messages : 378
    Par défaut
    Je me trompe peut-être, mais si ton object carte contient des tableau de cellule et celui ci des tableau d'élément, que ce passe-til quand tu sérialise une instance de carte ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 46
    Par défaut
    attend, une seconde ... Donc si j'ai bien compris une sérialisation sauvegarde l'objet et tous les objets qui contiennent
    dont je n'aurai besoin de sérialiser que mon objet carte il sauvegardera automatiquement tout le reste...
    la, ça me posera un problème... Car mes objets éléments ont chacun un objet définition d'éléments et un objet animation élément or ces objets la, n'ont pas besoin d'être sauvegarder car ils sont redondants, et je les charge à part
    aussi: chaque élément a une référence vers carte afin de de pouvoir interagir avec ses voisins proches...
    solution: arrêter la sérialisation à élément (comment faire?...)

  4. #4
    Membre éclairé Avatar de bilb0t
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    378
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2003
    Messages : 378
    Par défaut
    Tes classes doivent implémenter ISerializable ou être taggées [Serializable]

    Et les propriété que tu ne veux pas sérializer il faut les tagger avec l'attribut [AttendJeCherche]

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 46
    Par défaut
    non, je crois tout compte fait la sérialisation n'est pas applicable à ce que je veux faire
    je crois je vais devoir faire une "sauvegarde à la dure" en faisant des méthodes qui ne sauvegarderaient que les données que j'ai besoin :
    dans carte les coordonner X. Y.
    pour chaque cellule une énumération type de cellules, nombre d'éléments
    chaque élément : une énumération type d'éléments, et les donnés de cet élément

    et pour le rechargement effectué l'opération inverse

    C'est un peu plus de boulot, mais ça ne sauvegardera que ce que j'ai besoin

    un grand merci pour ton aide

  6. #6
    Membre éclairé Avatar de bilb0t
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    378
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2003
    Messages : 378
    Par défaut
    tu as tort de t'arreter en si bon chemin...

    la serialisation xml va répondre à ton besoin. DE mémoire (et donc à vérifier) ça fonctionnne comme ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    [Serializable]
    Class taClass
    {
      [XmlQQch:axeDesX]
      int _monX;
      [XmlQQch:axeDesY]
      int _monY;
      [Not Serialize]
      UnTrucQueTuVeuxPasSerializer _tonTruc;
      [XmlQQch:TonTabDeBidule]
      ArrayList _pleinDeTruc;
    }
    et tu va avoir un xml du style:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <xml version...>
     <taClass>
      <axeDesX>6</axeDesX>
      <axeDesY>8</axeDesY>
      <TonTabDeBidule>
        <obj>...</obj>
        <obj>...</obj>
      </TonTabDeBidule>
     </taClass>
    </xml>

Discussions similaires

  1. Pointeur sur objet different
    Par peruvio dans le forum C++
    Réponses: 4
    Dernier message: 19/11/2007, 20h06
  2. serialisation d'objets sur hd
    Par dark2 dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 08/02/2007, 01h35
  3. Serialisation d'objet contenant une collection
    Par Invité dans le forum Langage
    Réponses: 5
    Dernier message: 21/08/2006, 08h37
  4. serialiser des objets
    Par bfb dans le forum Langage
    Réponses: 2
    Dernier message: 30/07/2005, 23h07
  5. [VB6]Sérialiser un objet
    Par HPJ dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 11/10/2003, 10h05

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