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 :

Erreur lors de l'instanciation d'un objet


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    281
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 281
    Par défaut Erreur lors de l'instanciation d'un objet
    Bonjour à tous,

    Je viens de créer une classe cAnnuaireResult.
    L'objet cAnnuaireResultat correspond aux coordonnées d'une personne

    Voici le constructeur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
            public cAnnuaireResult(string strNom, string strPrenom, ArrayList arStrTel, string strMail, string strRue, string strVille, string strCpostal)
            {
                m_strMail = strMail;
                m_strNom = strNom;
                m_strPrenom = strPrenom;
                m_arTel = new ArrayList();
                m_arTel = arStrTel;
                m_strRue = strRue;
                m_strVille = strVille;
                m_strCpostal = strCpostal;
            }
    Voici l'appel de mon instentiation :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    new cAnnuaireResult(Nom[i].InnerXml, FirstName[i].InnerXml, (ArrayList)m_strPhone[i], "", Rue[i].InnerXml, Ville[i].InnerXml, CPostal[i].InnerXml));
    Mon problème est que je possède certaines fiches sans prénom, et le compilateur me sors une exception du type
    La référence d'objet n'est pas définie à une instance d'un objet.
    Et je pense que cela vient du fait que FirstName[i].InnerXml n'existe pas.

    Je précise que me résultats proviennent d'un service web, le tout est un xml que je parse grâce aux méthodes "GetElementsByTagName".

    Comment me sécuriser au niveau de l'instentiation de ma classe ? En effet, le prénom n'est pas "obligatoire".

    Merci à tous

    Bien cordialement,

    Nixeus

  2. #2
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2011
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2011
    Messages : 35
    Par défaut
    Solution possible :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    //Dans ton constructeur cAnnuaireresult à la place de m_prenom = strPrenom;
    if(strPrenom != null)
          m_prenom = strPrenom;
    else
          m_prenom = String.Empty;

  3. #3
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    281
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 281
    Par défaut
    Bonjour et merci de ta réponse rapide.
    Je reste sceptique car le compilateur donne cette erreur d'exception directement sur la ligne du new ! Mais je tester de suite

    Merci

  4. #4
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    281
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 281
    Par défaut
    Le problème est plus vicieux.
    Lors du parsing XML pour ma réponse en question, aucun prénom n'est renvoyé, donc FirstName[i].InnerXml n'existe pas !

    L'accès à FirstName[i].InnerXml crée donc l'exception.

    Il faudrait donc que je modifie la taille du tableau FirstName en fonction du nombres de résultats renvoyés.

  5. #5
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2011
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2011
    Messages : 35
    Par défaut
    Alors tout simplement avant de créer ton objet de type cAnnuaireResult tu fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    if(FirstName[i].InnerXml == null)
         FirstName[i].InnerXml = String.Empty;

  6. #6
    Membre émérite Avatar de kheironn
    Homme Profil pro
    Chef de projets technique C# / MVC / .Net
    Inscrit en
    Février 2007
    Messages
    823
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projets technique C# / MVC / .Net
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2007
    Messages : 823
    Par défaut
    tu peux donner le code où tu lis le xml ? ç'est plutôt là que tu dois faire quelque chose.
    En plus avec tes Nom[i], etc, ça me parait louche.

Discussions similaires

  1. erreur lors de l'insertion d'un objet graphique dans openoffice
    Par hirondellle dans le forum Odoo (ex-OpenERP)
    Réponses: 0
    Dernier message: 15/03/2012, 17h17
  2. Réponses: 1
    Dernier message: 13/11/2011, 13h45
  3. Erreur lors de l'instanciation d'une classe
    Par Aloneghost dans le forum Langage
    Réponses: 6
    Dernier message: 21/06/2010, 21h14
  4. Réponses: 5
    Dernier message: 04/10/2006, 15h45
  5. [INSERT] Erreur lors de l'ajout d'un objet
    Par bouchette63 dans le forum DB2
    Réponses: 3
    Dernier message: 30/08/2006, 09h32

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