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 :

serialiser classe avec plusieurs List de classes : j'y arrive pas [Débutant]


Sujet :

C#

  1. #1
    Membre régulier

    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Décembre 2002
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2002
    Messages : 216
    Points : 120
    Points
    120
    Par défaut serialiser classe avec plusieurs List de classes : j'y arrive pas
    Bonjour,

    j'ai des classes de base de type :
    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
    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
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
     
        [Serializable()]
        public class ParTension
        {
            private double valTension = 0;
            private double duree = 0;
            private string nom = "Pas de Tension ";
            public ParTension()
            {
            }
     
            public ParTension(double tension , double duree = 0)
            {
                this.valTension = tension;
                this.duree = duree;
            }
     
            [XmlAttribute()]
            public double Tension
            {
                get { return valTension; }
                set { valTension = value;  }
            }
     
            [XmlAttribute()]
            public double Duree
            {
                get { return duree;  }
                set { duree = value; }
            }
     
            [XmlAttribute()]
            public string Nom
            {
                get { return nom; }
                set { nom = value; }
            }
        }
     
        [Serializable()]
        public class ParCourantATps
        {
            private double valCourant = 0;
            private double toleranceMinTemps = 0;
            private double toleranceMaxTemps = 0;
            private string nom = "Courant(A) pour mesure Tps ";
     
            public ParCourantATps()
            {
            }
     
            public ParCourantATps(double valTps, double tolMin, double tolMax)
            {
                valCourant = valTps;
                toleranceMinTemps = tolMin;
                toleranceMaxTemps = tolMax;
            }
     
            [XmlAttribute()]
            public double Temps
            {
                get { return valCourant; }
                set { valCourant = value;  }
            }
            [XmlAttribute()]
            public double TolMin
            {
                get { return toleranceMinTemps; }
                set { toleranceMinTemps = value;  }
            }
            [XmlAttribute()]
            public double TolMax
            {
                get { return toleranceMaxTemps; }
                set { toleranceMaxTemps = value;  }
            }
            [XmlAttribute()]
            public string Nom
            {
                get { return nom; }
                set { nom = value; }
            }
     
        }
     
    [Serializable()]
        public class TypePieces
        {
            public List<TypesParametres.ParTension> listTensions = new List<TypesParametres.ParTension>();
            public List<TypesParametres.ParCourantATps> listCourantsATps = new List<TypesParametres.ParCourantATps>();
     
           [NonSerialized()]
             ....
     
            public TypePieces()
            {
            }
            public TypePieces( param...)
            {
            }
     
            [NonSerialized()]
            .... instanciation plusieurs éléments dans les 2 listes ...
        }
     
     
        class Piece
        {
            public TypePieces piece;
     
            public void SerialisePiece()
            {
                    XmlSerializer xs = new XmlSerializer(typeof(TypePieces));
     
                    StreamWriter stream = new StreamWriter("test.xml",false);
     
                   xs.Serialize(stream, piece);
                   stream.Close();
           }
        }
    et... ça veut pas le faire
    j'ai des erreurs.
    quelle est la méthode pour ce genre de classe avec des List ?

    Merci pour les réponses.

  2. #2
    Expert confirmé

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    2 065
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2 065
    Points : 4 229
    Points
    4 229
    Par défaut
    Chez moi ça marche

    j'ai testé avec ce code:
    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
    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
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
     
    using System;
    using System.Collections.Generic;
    using System.IO;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Xml.Serialization;
     
    namespace TestSerialisation
    {
    	class Program
    	{
    		static void Main(string[] args)
    		{
    			Piece.SerialisePiece();
    		}
    	}
    	[Serializable()]
    	public class ParTension
    	{
    		private double valTension = 0;
    		private double duree = 0;
    		private string nom = "Pas de Tension ";
    		public ParTension()
    		{
    		}
     
    		public ParTension(double tension, double duree = 0)
    		{
    			this.valTension = tension;
    			this.duree = duree;
    		}
     
    		[XmlAttribute()]
    		public double Tension
    		{
    			get { return valTension; }
    			set { valTension = value; }
    		}
     
    		[XmlAttribute()]
    		public double Duree
    		{
    			get { return duree; }
    			set { duree = value; }
    		}
     
    		[XmlAttribute()]
    		public string Nom
    		{
    			get { return nom; }
    			set { nom = value; }
    		}
    	}
     
    	[Serializable()]
    	public class ParCourantATps
    	{
    		private double valCourant = 0;
    		private double toleranceMinTemps = 0;
    		private double toleranceMaxTemps = 0;
    		private string nom = "Courant(A) pour mesure Tps ";
     
    		public ParCourantATps()
    		{
    		}
     
    		public ParCourantATps(double valTps, double tolMin, double tolMax)
    		{
    			valCourant = valTps;
    			toleranceMinTemps = tolMin;
    			toleranceMaxTemps = tolMax;
    		}
     
    		[XmlAttribute()]
    		public double Temps
    		{
    			get { return valCourant; }
    			set { valCourant = value; }
    		}
    		[XmlAttribute()]
    		public double TolMin
    		{
    			get { return toleranceMinTemps; }
    			set { toleranceMinTemps = value; }
    		}
    		[XmlAttribute()]
    		public double TolMax
    		{
    			get { return toleranceMaxTemps; }
    			set { toleranceMaxTemps = value; }
    		}
    		[XmlAttribute()]
    		public string Nom
    		{
    			get { return nom; }
    			set { nom = value; }
    		}
     
    	}
     
    	[Serializable()]
    	public class TypePieces
    	{
    		public List<ParTension> listTensions = new List<ParTension>();
    		public List<ParCourantATps> listCourantsATps = new List<ParCourantATps>();
     
     
    		public TypePieces()
    		{
    		}
     
     
    	}
     
     
    	class Piece
    	{
     
    		public static void SerialisePiece()
    		{
    			XmlSerializer xs = new XmlSerializer(typeof(TypePieces));
    			TypePieces piece=new TypePieces();
    			piece.listCourantsATps=new List<ParCourantATps>{new ParCourantATps(3,2,3),new ParCourantATps(6,22,45)};
    			piece.listTensions=new List<ParTension>{new ParTension(45,3),new ParTension(26)};
    			StreamWriter stream = new StreamWriter("test.xml", false);
     
    			xs.Serialize(stream, piece);
    			stream.Close();
    		}
    	}
    }
    Voilà le résultat
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <?xml version="1.0" encoding="utf-8"?>
    <TypePieces xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
      <listTensions>
        <ParTension Tension="45" Duree="3" Nom="Pas de Tension " />
        <ParTension Tension="26" Duree="0" Nom="Pas de Tension " />
      </listTensions>
      <listCourantsATps>
        <ParCourantATps Temps="3" TolMin="2" TolMax="3" Nom="Courant(A) pour mesure Tps " />
        <ParCourantATps Temps="6" TolMin="22" TolMax="45" Nom="Courant(A) pour mesure Tps " />
      </listCourantsATps>
    </TypePieces>

  3. #3
    Membre régulier

    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Décembre 2002
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2002
    Messages : 216
    Points : 120
    Points
    120
    Par défaut
    j'essaye, et je regarde ou j'ai l'erreur dés que je peux.

    j'ai du par négligence oublier quelque chose.


    Merci

  4. #4
    Membre actif
    Homme Profil pro
    Developpeur
    Inscrit en
    Février 2013
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Developpeur

    Informations forums :
    Inscription : Février 2013
    Messages : 180
    Points : 271
    Points
    271
    Par défaut
    met nous l'erreur, on l'a peut être déjà eu qui sait

    ps : ça marche chez moi aussi

  5. #5
    Membre régulier

    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Décembre 2002
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2002
    Messages : 216
    Points : 120
    Points
    120
    Par défaut
    Merci pour vos réponses à tous, mais suite à diverses modifs, maintenant je sérialise un DataTable à la place.



    A bientôt

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 30/03/2014, 15h33
  2. Réponses: 32
    Dernier message: 28/11/2010, 17h33
  3. [SQL] liste déroulante classée avec valeur cible
    Par nagdrir dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 25/09/2007, 16h09
  4. Réponses: 5
    Dernier message: 07/06/2007, 17h47
  5. plusieurs instance de classe avec thread
    Par lucky dans le forum MFC
    Réponses: 2
    Dernier message: 14/09/2006, 11h30

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