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 :

Serialization d'un objet


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert

    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    1 377
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 377
    Par défaut Serialization d'un objet
    Bonjour à tous,

    Je voulais savoir, comment m'y prendre pour imbriquer un ensemble de propriété de mon objet dans un élément (XmlElement), je m'explique par un exemple :

    Code c# : 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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    [Serializable()]
     
    [XmlRoot("ContactList")]
    public class Contact
        {
            private int _intCivilite;
     
            public int intCivilite
            {
                get { return _intCivilite; }
                set { _intCivilite = value; }
            }
     
            private string _strPrenom = "toto";
     
            public string strPrenom
            {
                get { return _strPrenom; }
                set { _strPrenom = value; }
            }
     
            private string _strNom = "toto";
     
            public string strNom
            {
                get { return _strNom; }
                set { _strNom = value; }
            }
     
            private string _strMethodeDeContact = "toto";
     
            public string strMethodeDeContact
            {
                get { return _strMethodeDeContact; }
                set { _strMethodeDeContact= value; }
            }
     
            private string _strEmail = "toto";
     
            public string strEmail
            {
                get { return _strEmail; }
                set { _strEmail = value; }
            }
     
            private string _strTelephone = "toto";
     
            public string strTelephone
            {
                get { return _strTelephone; }
                set { _strTelephone = value; }
            }
     
            private string _strCommentaires = "toto";
     
            public string strCommentaires
            {
                get { return _strCommentaires; }
                set { _strCommentaires = value; }
            }
    }

    Ce qui donne :

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <contact>
      <intCivilite>0</intCivilite> 
      <strPrenom>toto</strPrenom> 
      <strNom>toto</strNom> 
      <strMethodeDeContact>toto</strMethodeDeContact> 
      <strEmail>toto</strEmail> 
      <strTelephone>toto</strTelephone> 
      <strCommentaires>toto</strCommentaires> 
      <blnTopNoMail>toto</blnTopNoMail> 
    </contact>

    Maintenant si je veux avoir quelques chose de ce type là :

    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
    <contact>
      <Utilisateur>
        <intCivilite>0</intCivilite> 
        <strPrenom>toto</strPrenom> 
        <strNom>toto</strNom> 
      <Utilisateur>
     
      <TypeContact>
        <strMethodeDeContact>toto</strMethodeDeContact> 
        <strEmail>toto</strEmail> 
        <strTelephone>toto</strTelephone> 
      </TypeContact>
     
      <strCommentaires>toto</strCommentaires> 
      <blnTopNoMail>toto</blnTopNoMail> 
    </contact>
    Y a t il un moyen simple d'arriver à ce résultat ?

    Pour l'instant le seul moyen que j'ai trouvé c'est d'utiliser des nouveau objets (objet utilisateur & typeContact) rassurez moi y a mieux et plus simple ?

    Merci d'avance

    PS : Je travaille sur .NET 2.0 et le résultat est envoyé par mail en pièce jointe
    PS2 : J'utilise comme méthode de serailization, XmlSerializer
    Échouer, c'est avoir la possibilité de recommencer de manière plus intelligente.

    Twitter Blog Mon site

    Mon article sur l'agilité

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par rad_hass Voir le message
    Pour l'instant le seul moyen que j'ai trouvé c'est d'utiliser des nouveau objets (objet utilisateur & typeContact) rassurer moi y a mieux et plus simple ?
    Je ne pense pas que tu puisses faire autrement qu'en créant des nouvelles classes... la sérialization XML est relativement souple, mais faut pas pousser
    A priori chaque élément XML doit correspondre à une instance d'une classe.

  3. #3
    Membre Expert

    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    1 377
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 377
    Par défaut
    tant pis alors, je vais me résigner à la création de classe supplémentaire ... En tout cas merci beaucoup pour ta réponse.

    Y a un collègue qui m'a conseillé d'utiliser dans ce genre de cas XmlTextWriter, je préfère tout de même la serialization d'objet, peut être ai-je tort ?
    Échouer, c'est avoir la possibilité de recommencer de manière plus intelligente.

    Twitter Blog Mon site

    Mon article sur l'agilité

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par rad_hass Voir le message
    Y a un collègue qui m'a conseillé d'utiliser dans ce genre de cas XmlTextWriter, je préfère tout de même la serialization d'objet, peut être ai-je tort ?
    Pas vraiment de réponse toute faite... ça dépend des cas. Moi aussi j'ai une préférence pour la sérialisation XML, qui est super pratique. Après, je crois qu'il est possible de "customiser" un peu plus la sérialisation XML en implémentant l'interface IXmlSerializable.

Discussions similaires

  1. Réponses: 1
    Dernier message: 03/04/2013, 14h39
  2. Réponses: 0
    Dernier message: 21/02/2012, 18h29
  3. serialize sur un objet
    Par Tchupacabra dans le forum jQuery
    Réponses: 9
    Dernier message: 29/03/2010, 11h14
  4. [RMI][Serialization] Recupérer un objet
    Par mavina dans le forum Entrée/Sortie
    Réponses: 5
    Dernier message: 04/12/2006, 15h01
  5. [Sessions] Session + Serialize + Objets?
    Par Chiwawa dans le forum Langage
    Réponses: 2
    Dernier message: 28/09/2005, 20h32

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