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?