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#] Comment sérialiser une classe abstraite?


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 4
    Par défaut [C#] Comment sérialiser une classe abstraite?
    Bonjour,

    j'ai un souci de serialisation. Je vous explique avec du code ce sera plus simple

    j'ai une classe abstraite qui implemente une interface :
    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
     
    [Serializable]
        public abstract class ME : IM
        {         
            protected string                m_name;
            protected string                m_body;
     
     
            public ME() { }
     
            public abstract string Body {get;}
     
     
            public string Name
            {
                get { return m_name; }
            }
       }
    une autre classe qui derive de la classe abstraite :
    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
     
    [Serializable]
        public class MH : ME
        {        
            string m_bodyH;
     
            public MessageHtml() { }
            public MessageHtml(string name, string bodyH)
            {
                m_name = name;
                m_bodyH = bodyH;        
            }
     
            public override string Body
            {
                get { return m_bodyH; }
            }
        }
    Enfin je serialise mon objet de la manière suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    ME myObject = new MH("le nom", "le bodyH");
     
    System.IO.StringWriter oWriter = new System.IO.StringWriter();
    XmlSerializer serializer = new XmlSerializer(myObject.GetType());
    serializer.Serialize(oWriter, myObject);
    lblName.Text = oWriter.ToString();
    Tout compile trés bien. Mais le souci est que je n'arrive pas à obtenir les attributs de la classe abstraite "ME". Je n'ai rien dans le "oWriter" (à part les balises xml).

    Je debute un peu dans la serialisation et je ne comprend pas pourquoi je n'arrive pas à les obtenir.
    Merci pour votre aide

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 4
    Par défaut
    Donc j'ai trouvé ! (w00t)
    Il faut ajouter la methode SET dans chaque propriété qu'on désire sérialisé.

    cad dans la classe abstraite :
    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
     
    [Serializable]
    	public abstract class ME : IM
    	{		 
    		protected string				m_name;
    		protected string				m_body;
     
     
    		public ME() { }
     
    		public abstract string Body {get;}
     
     
    		public string Name
    		{
    			get { return m_name; }
    			set { m_name = value; }
    		}
       }

    merci quand meme

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 06/12/2014, 16h25
  2. Comment faire une classe abstraite avec un constructeur
    Par zemzoum89 dans le forum Débuter avec Java
    Réponses: 3
    Dernier message: 16/10/2010, 00h01
  3. Réponses: 0
    Dernier message: 20/10/2009, 18h09
  4. Réponses: 6
    Dernier message: 01/05/2006, 19h05

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