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 :

Désérialisation initialisation des List


Sujet :

C#

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2013
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Bâtiment

    Informations forums :
    Inscription : Décembre 2013
    Messages : 46
    Points : 26
    Points
    26
    Par défaut Désérialisation initialisation des List
    Bonjour,
    Je dois transformer un fichier XML en fichier CSV pour ce faire je me suis dit que j'allais désérialiser le fichier XML pour ensuite écrire dans un fichier CSV.
    Pour des raisons de confidentialité je ne peux vous fournir le fichier XML cependant il a la structure suivante :
    - une balise Service contient plusieurs balises folder1
    - une balise folder1 contient plusieurs balises folder2
    - une balise folder2 contient plusieurs balises folder3
    - une balise folder3 contient plusieurs balises file
    Le fichier faisant plus de 1700 lignes et ne m'appartenant pas merci de ne pas me demander de modifier complètement la structure.
    Et voici ma classe permettant de désérialisé ce fichier :

    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
     
         public class SerializationObject
        {
     
            [XmlRoot("file")]
            public class _File
            {
                [XmlAttribute("id")]
                public string id { get; set; }
                [XmlAttribute("name")]
                public string name { get; set; }
                [XmlAttribute("path")]
                public string path { get; set; }
                [XmlAttribute("type")]
                public string type { get; set; }
                [XmlAttribute("lang")]
                public string lang { get; set; }
                [XmlAttribute("xmlns")]
                public string xmlns { get; set; }
     
            }
            [XmlRoot("folder3")]
            public class _Folder3
            {
                [XmlAttribute("id")]
                public string id { get; set; }
                [XmlAttribute("name")]
                public string name { get; set; }
                 [XmlAttribute("path")]
                public string path { get; set; }
                 [XmlAttribute("type")]
                public string type { get; set; }
                [XmlArrayItem("file")]
                public List<_File> folder3 { get; set; }
            }
            [XmlRoot("folder2")]
            public class _Folder2
            {
                [XmlAttribute("id")]
                public string id { get; set; }
                [XmlAttribute("name")]
                public string name { get; set; }
                [XmlAttribute("path")]
                public string path { get; set; }
                [XmlAttribute("type")]
                public string type { get; set; }
                [XmlArrayItem("folder3")]
                public List<_Folder3> folder2 { get; set; }
            }
            [XmlRoot("folder1")]
            public class _Folder1
            {
                [XmlAttribute("id")]
                public string id { get; set; }
                [XmlAttribute("name")]
                public string name { get; set; }
                [XmlAttribute("path")]
                public string path { get; set; }
                [XmlAttribute("type")]
                public string type { get; set; }
                [XmlArrayItem("folder2")]
                public List<_Folder2> folder1 { get; set; }
            }
            [XmlRoot("Service")]
            public class _Service
            {
                [XmlAttribute("xmlns")]
                public string xmlns { get; set; }
                [XmlArrayItem("folder1")]
                public List<_Folder1> Service { get; set; }
            }
        }
    Le problème est le suivant : le programme programme plante lors de l'initialisation de Pouvez-vous m'aider ?

    Merci d'avance

    Cordialement

    Winflow

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    D'après ce que je vois dans la documentation MSDN de XmlArrayItem, cet attribut s'utilise avec un tableau et non pas avec une liste.

    Essaye de remplacer les déclarations de List<MonType> par MonType[]...

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2013
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Bâtiment

    Informations forums :
    Inscription : Décembre 2013
    Messages : 46
    Points : 26
    Points
    26
    Par défaut
    XmlArrayItem gère bien les List je l'ai déjà utilisé pour un autre projet

  4. #4
    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
    Et en déclarant ta classe de la sorte ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
            [XmlRoot("Service")]
            public class _Service
            {
                [XmlAttribute("xmlns")]
                public string xmlns { get; set; }
                [XmlElement("folder1")]
                public List<_Folder1> Service { get; set; }
            }

Discussions similaires

  1. Réponses: 2
    Dernier message: 11/05/2009, 09h36
  2. Initialisation de list proche des tableaux
    Par Mik ArBer dans le forum Langage
    Réponses: 8
    Dernier message: 22/07/2008, 23h03
  3. [glut] de l'intérêt des listes
    Par khayyam90 dans le forum OpenGL
    Réponses: 3
    Dernier message: 26/07/2004, 10h35
  4. [langage] probleme avec les listes dans des listes
    Par pqmoltonel dans le forum Langage
    Réponses: 7
    Dernier message: 27/04/2004, 12h32
  5. initialisation des property page
    Par Robleplongeur dans le forum MFC
    Réponses: 3
    Dernier message: 21/04/2004, 10h47

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