Partage
  • Partager sur Facebook
  • Partager sur Twitter

[c#] Serialisation user controls

    8 juin 2011 à 11:33:30

    Bonjour,

    j'ai créé pour un projet plusieurs user controls:
    [Serializable] public partial class Minipion : UserControl
        {
            public Minipion()
            {
                InitializeComponent();
            }
    
            public bool estModifie;
        }
    
    [Serializable] public partial class Verificateur : UserControl
        {
            public Verificateur()
            {
                InitializeComponent();
                initMiniPions();
            }
    
            Minipion courrant= new Minipion();
            private List<Minipion> lesMiniPions = new List<Minipion>();
    
            private void initMiniPions();
    
            public void modifierVerificateur(int[] codesVerif);
    
            private void getMiniPionCourrant();
    
            public bool estComplet();
    
            public void reinitialiser();
        }
    

    [Serializable] public partial class Ligne_UI : UserControl
        {
            public Ligne_UI()
            {
                InitializeComponent();
                initLesPions();
            }
    
            public List<Pion_UI> lesPions = new List<Pion_UI>();
            public Pion_UI pionCourant = new Pion_UI();
            private bool _estComplete;
    
            public bool estComplete;
            
            private void initLesPions();
    
            private void getPionCourant();
    
            public void modifierLigne(Pion_UI unPion);
    
            public void modifierLigne(Color uneCouleur);
    
            public bool estEgale(Ligne_UI uneligne);
    
            public int[] comparerCouleurs(Ligne_UI uneLigne);
    
            private void testerLigne();
    
            private bool contient(Pion_UI unPion);
    
            public void reinitialiser();
    
            private void pion_BackColorChanged(object sender, EventArgs e);
        }
    

    [Serializable] public partial class Pion_UI : UserControl
        {
            public Pion_UI();
    
            private Pion _source;
    
            public Pion source;
    
            public string getCouleur();
    
            public void setCouleur(string uneCouleur);
    
            public void setCouleur(Color uneCouleur);
    
            public bool comparer(Pion_UI unPion);
    
        }
    


    (j'ai volontairement supprimé le contenu des méthodes pour plus de clarté). Le souci est que je ne peux sérialiser aucun d'entre eux:
    public void sauvegarderPartie(string nomFichier)
            {
                IFormatter fmt=new BinaryFormatter();
                Stream ficOut = new FileStream(nomFichier, FileMode.Create, FileAccess.Write) ;
                fmt.Serialize(ficOut, lesLignes) ;
    //L'exception SerializableException se déclenche avec le message d'erreur
    // suivant:"Le type 'System.Windows.Forms.UserControl' dans l'assembly 
    //'System.Windows.Forms,Version=4.0.0.0, Culture=neutral, 
    //PublicKeyToken=b77a5c561934e089' n'est pas marqué comme sérialisable."
                ficOut.Close() ;
            }
    


    Ma question est donc: est-ce que les user controls sont sérialisable et, si oui, comment faire??

    merci d'avance
    • Partager sur Facebook
    • Partager sur Twitter
      8 juin 2011 à 11:41:29

      Non, les UC ne sont pas sérialisables. Pourquoi voudrais tu faire ça ?
      • Partager sur Facebook
      • Partager sur Twitter
        8 juin 2011 à 11:44:14

        je suis en train de faire un mastermind et c'est pour pouvoir réaliser une sauvegarde de la partie
        • Partager sur Facebook
        • Partager sur Twitter
          8 juin 2011 à 12:44:39

          Et voilà pourquoi il est important de bien séparer les données de l'interface... :-°
          • Partager sur Facebook
          • Partager sur Twitter
            9 juin 2011 à 21:35:32

            ouais je sais... :honte: ceci étant dit, j'ai finalement choisi de ne pas gérer la sauvegarde :D
            • Partager sur Facebook
            • Partager sur Twitter
              14 juin 2011 à 15:44:40

              euh ... génial comme astuce ...
              • Partager sur Facebook
              • Partager sur Twitter
                14 juin 2011 à 16:32:30

                bah en fait en y réfléchissant un petit peu j'me suis rendu compte que sauvegarder une partie de mastermind n'a pas vraiment d'intérêt
                • Partager sur Facebook
                • Partager sur Twitter

                [c#] Serialisation user controls

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown