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 :

[C#] pb de serialisation et evenement


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juin 2006
    Messages
    244
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 244
    Par défaut [C#] pb de serialisation et evenement
    J'ai créé une classe MyNode dérivée de TreeNode de façon à obtenir un noeud qui peut contenir une référence sur un objet (un peu comme le DefaultMutableTreeNode en Java). De plus mon noeud peut ecouter l'objet qu'il contient via un systeme d'evennements.
    Ce système d'evennement me pose un problème lors de la serialization :
    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
    17
    18
    19
    20
    21
    22
     
    [Serializable]
    public class MyClass
    {
       // ....
       public event MyEvent modificationObjet // délégué de type void method(void)
    }
     
    public class MyNode : TreeNode
    {
      private object contentObject;
      public MyNode(MyClass contentObject) : base(contentObject.ToString())
      {
         this.contentObject = contentObject;
         contentObject.modificationObjet += ecouteContentObject;
      }
      // ici une propriété pour récuperer l'objet
      public void ecouteContentObject()
      {
         // code
      }
    }
    Le problème vient quand je demande de serialiser l'objet récupéré comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    MyClass myObject = new MyClass();
    MyNode node = new MyNode(myObject);
     
    serialise(node.ContentObject) // la méthode serialise sauvegarde un objet de type MyClass
    Ici, j'ai un problème lors de la serialisation! Il me dit que MyNode n'est pas serializable. Si je retire la deuxième ligne du constructeur de MyNode, ca fonctionne!! Quelqu'un peut m'aider?

  2. #2
    Invité
    Invité(e)
    Par défaut
    Tu n'as déclarer que la premiere classe en serialisable. si tu veux que MyNode soit serialisable il faut rajouter devant la classe [Serializable]

  3. #3
    Membre confirmé
    Inscrit en
    Juin 2006
    Messages
    244
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 244
    Par défaut
    Oui bien entendu Le problème est que je ne veut pas serialiser MyNode, juste MyClass. Donc la question reste ouverte!

  4. #4
    Invité
    Invité(e)
    Par défaut
    Désolé j'avais pas compris ta question.

  5. #5
    Membre émérite
    Profil pro
    Inscrit en
    Août 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2003
    Messages : 835
    Par défaut
    Salut,

    Il me semble que lors de la sérialisation .Net tente de sérialiser non seulement ton objet mais également tous les objets qu'il référence et ainsi de suite.
    Tes objets de type MyClass possedent un évènement et qd tu associes à ton évènement une méthode d'un objet MyNode alors cet évènement possède une référence vers l'objet MyNode, d'ou a la sérialisation la tentative de sérialiser aussi l'objet MyNode...
    Tu peux peut etre essayer de ne pas sérialiser ton évènement, d'ailleurs est-ce que ça a un sens dans ton cas ?

  6. #6
    Membre confirmé
    Inscrit en
    Juin 2006
    Messages
    244
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 244
    Par défaut
    Ok, j'avais bien pensé a cela. donc nouvelle question, comment fait t'on? car l'attribut [NonSerializable] ne fonctionne pas sur les event?

  7. #7
    Membre confirmé
    Inscrit en
    Juin 2006
    Messages
    244
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 244
    Par défaut
    désolé j'étais en déplacement! donc, j'ai trouvé la solution: tout simplement un clone.
    En gros j'ai implémenté une méthode Clone sur MaClasse a serialiser et plus de problème.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VB6] Interception des évènement Copier/Couper/Coller
    Par youtch dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 18/10/2002, 17h09
  2. [VB6] Evenement validate
    Par grosjej dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 05/09/2002, 15h46
  3. Evenement Change
    Par PierDIDI dans le forum Composants VCL
    Réponses: 3
    Dernier message: 28/08/2002, 10h08
  4. develloppement avec ORBit: service d'evenement
    Par belmontv dans le forum CORBA
    Réponses: 3
    Dernier message: 06/06/2002, 22h56
  5. Generation d'evenements a une date precise
    Par pascalzzz dans le forum MFC
    Réponses: 2
    Dernier message: 04/06/2002, 15h21

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