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

Linq Discussion :

[LINQ to XML] Problème avec un requête linq (nullreferencexception)


Sujet :

Linq

  1. #1
    Membre très actif
    Avatar de teddyalbina
    Homme Profil pro
    Développeur .Net,C++
    Inscrit en
    Janvier 2008
    Messages
    466
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .Net,C++

    Informations forums :
    Inscription : Janvier 2008
    Messages : 466
    Par défaut [LINQ to XML] Problème avec un requête linq (nullreferencexception)
    Salut !

    J'ai besoin de votre aide concernant une requete LINQ (c la première fois que j'utilise cette techno d'ailleur). Ma requete sert simplement a récupérer une valeur dans un fichier XML

    voici le fichier en question :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?xml version="1.0" encoding="utf-8" ?>
    <Plugin>
      <dlls><![CDATA[Addins.Html]]></dlls>
      <category><![CDATA[Web]]></category>
      <available>
        <match><![CDATA[html]]></match>
      </available>
    </Plugin>


    mon code LINQ :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
                            XDocument xmldoc = XDocument.Load(dlls[i]);
     
                            var dll_name = from x in xmldoc.Elements()
                                           select new PluginsLINQ
                                           {
                                               Name = xmldoc.Element("dlls").Value
                                           };

    le code de ma class PluginsLINQ

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        public class PluginsLINQ
        {
            public string Name { get; set; }
        }

    jusque la tout vas bien sauf que quand le fait cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
                            foreach (var x in dll_name)
                            {
                                _temp = x.Name;
                            }

    j'obtient l'erreur (voir image jointe).


    Je n'arrive pas a trouver ou est le problème !!!

    merci de votre aide

  2. #2
    Membre confirmé Avatar de Nadd
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2005
    Messages
    160
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 160
    Par défaut
    Bonsoir,

    L'erreur obtenue ne provient pas de ta boucle foreach mais de ton code de sélection. Essaye plutôt ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
                var dll_name = from x in document.Elements("Plugin")
                               select new PluginsLINQ
                               {
                                   Name = x.Element("dlls").Value
                               };
    Cordialement,

    Nicolas.

  3. #3
    Membre très actif
    Avatar de teddyalbina
    Homme Profil pro
    Développeur .Net,C++
    Inscrit en
    Janvier 2008
    Messages
    466
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .Net,C++

    Informations forums :
    Inscription : Janvier 2008
    Messages : 466
    Par défaut
    Merci Nadd, mais ta solutions ne fonctionne pas

  4. #4
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Par défaut
    et en debug, tu ne peux pas verifier que les elements existent vraiment?

    notamment xmldoc


    d'ailleurs, tu fais un from x et tu ne réutilises jamais "x". :s c'est normal?

  5. #5
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Par défaut
    Essaye ca comme requete:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    var dll_name = from x in xmldoc.Elements()
                                           select new PluginsLINQ()
                                           {
                                               Name = xmldoc.Element("dlls").Value
                                           };

  6. #6
    Membre très actif
    Avatar de teddyalbina
    Homme Profil pro
    Développeur .Net,C++
    Inscrit en
    Janvier 2008
    Messages
    466
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .Net,C++

    Informations forums :
    Inscription : Janvier 2008
    Messages : 466
    Par défaut
    J'ai trouvé la solution elle etait devant moi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
                            var dll_name = from x in xmldoc.Elements()
                                           select new PluginsLINQ
                                           {
                                               Name = x.Element("dlls").Value
                                           };
    La suggestion de Louis-Guillaume Morand etait bonne je n'utilisais jamais x

    Merci a vous pour l'aide.

  7. #7
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Par défaut
    La suggestion de Louis-Guillaume Morand etait bonne je n'utilisais jamais x
    et j'ai jamais fait de linq de ma vie (mais j'ai lu le tuto de tomtom two days ago)

  8. #8
    Membre confirmé Avatar de Nadd
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2005
    Messages
    160
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 160
    Par défaut
    Quant à moi, je me demande comment cela se fait-il que ma solution, pourtant testée en local, n'aie pas fonctionné .

    Amicalement,

    Nicolas.

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

Discussions similaires

  1. Binding HS avec une requête LINQ retournant plusieurs tables
    Par abbepierre94 dans le forum Silverlight
    Réponses: 4
    Dernier message: 01/02/2011, 11h19
  2. Linq to dataSet problème avec AsEnumerable()
    Par littlefish dans le forum Linq
    Réponses: 3
    Dernier message: 17/09/2010, 17h29
  3. Requête linq to xml
    Par laurent.fructus dans le forum Linq
    Réponses: 3
    Dernier message: 31/05/2009, 23h41
  4. linq to xml - problème pour mathml
    Par PatrickDescamps dans le forum C#
    Réponses: 4
    Dernier message: 16/12/2008, 19h09
  5. Problème avec les méthodes Linq to SQL en C#
    Par Lennox dans le forum Silverlight
    Réponses: 7
    Dernier message: 05/09/2008, 18h53

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