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

Dotnet Discussion :

Probleme de deserialisation


Sujet :

Dotnet

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Calvados (Basse Normandie)

    Informations forums :
    Inscription : Juin 2006
    Messages : 73
    Par défaut Probleme de deserialisation
    Bonjour,

    J'essai de deserialiser un document XML pour obtenir des classes. Je l'ai déjà fait auparavent sans probleme mais cette fois ci cela ne fonctionne pas. JE tourne en rond, si quelqu'un peut m'apporter sa lumière.

    voici l'url du doc xml à déserialiser : http://ws.audioscrobbler.com/1.0/art...ca/similar.xml

    voici mes classes pour le déserialiser :
    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
    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Xml;
    using System.Xml.Serialization;
    using System.Net;
    using System.IO;
     
    namespace Xtream_ToolBox.Sensors {
        [XmlRoot("similarartists")]
        public class SimilarArtists {
            [XmlIgnore]
            public List<Artist> artists = new List<Artist>();
     
            // default constructor (required for serialisation)
            public SimilarArtists() {
            }
     
            public static SimilarArtists loadFromUrl(String url) {
                SimilarArtists similarArtists = null;
                Uri uri = new Uri(url);
                XmlSerializer xmlSerializer = new XmlSerializer(typeof(SimilarArtists));
     
                try {
                    WebResponse webResponse = HttpWebRequest.CreateDefault(uri).GetResponse();
                    Stream stream = webResponse.GetResponseStream();
                    similarArtists = (SimilarArtists)xmlSerializer.Deserialize(stream);
                    stream.Close();
                } catch (Exception e) {
                    Console.WriteLine(e.Message);
                }
     
                return similarArtists;
            }
     
     
            // getter for events list (convert to array for xml serialization)
            [XmlElement("artist")]
            public Artist[] artistArray {
                get {
                    Artist[] artistArray = new Artist[artists.Count];
                    artists.CopyTo(artistArray);
                    return artistArray;
                }
                set {
                    if (value == null) return;
                    Artist[] artistArray = (Artist[])value;
                    artists.Clear();
                    foreach (Artist artist in artistArray) {
                        artists.Add(artist);
                    }
                }
            }
        }
    }
    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
    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Xml;
    using System.Xml.Serialization;
     
    namespace Xtream_ToolBox.Sensors {
        public class Artist {
            [XmlAttribute("name")]
            public String name;
            [XmlAttribute("match")]
            public int match;
            [XmlAttribute("url")]
            public String url;
            [XmlAttribute("image_small")]
            public String imageSmall;
     
            // default constructor (required for serialisation)
            public Artist() {
            }
        }
    }
    j'obtiens bien une liste de 100 artists (conformément à ce qu'il y a dans le fichier xml) mais tout les champs sont null (pour les string) ou zero pour les int. Je ne vois pas ce qui cloche :-(

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Calvados (Basse Normandie)

    Informations forums :
    Inscription : Juin 2006
    Messages : 73
    Par défaut
    personne n'a d'idée ?

  3. #3
    Membre Expert
    Avatar de Mehdi Feki
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 113
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 113
    Par défaut
    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
    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Xml;
    using System.Xml.Serialization;
     
    namespace Xtream_ToolBox.Sensors {
        public class Artist {
            [XmlAttribute("name")]
            public String name;
            [XmlAttribute("match")]
            public int match;
            [XmlAttribute("url")]
            public String url;
            [XmlAttribute("image_small")]
            public String imageSmall;
     
            // default constructor (required for serialisation)
            public Artist() {
            }
        }
    }
    Essaie plutot XMLElement au lieu de XMLAttribute

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Calvados (Basse Normandie)

    Informations forums :
    Inscription : Juin 2006
    Messages : 73
    Par défaut
    effectivement, suis-je bête.
    merci !

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

Discussions similaires

  1. Probleme DESERIALISATION Xml
    Par rosty38 dans le forum C#
    Réponses: 0
    Dernier message: 15/04/2010, 16h48
  2. Probleme avec deserialiser un bean
    Par magnus2005 dans le forum Services Web
    Réponses: 3
    Dernier message: 28/04/2009, 17h50
  3. probleme de typage lors de la deserialisation
    Par Kuroro dans le forum Langage
    Réponses: 4
    Dernier message: 17/05/2007, 18h25
  4. [type complex] problemes bizzards lors de la deserialisation
    Par djynwk dans le forum Services Web
    Réponses: 6
    Dernier message: 23/11/2006, 18h43

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