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 :

Pb d'accès dynamique à des propriétés


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Avatar de Psycadi
    Homme Profil pro
    Chef de projet - Expert en message box
    Inscrit en
    Juillet 2003
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet - Expert en message box

    Informations forums :
    Inscription : Juillet 2003
    Messages : 147
    Par défaut Pb d'accès dynamique à des propriétés
    Bonjour à tous,

    Voilà, j'ai un petit problème. Je vais essayer de faire simple.

    J'ai 3 types :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Type typeDg = Type.GetType(classeDg);
    Type typeDgIn = Type.GetType(classeDg.Replace("Dg", "In"));
    Type typeDgOut = Type.GetType(classeDg.Replace("Dg", "In"));
    Ensuite, j'ai 2 objets que j'ai défini comme cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    object msgIn = new object();
    object msgOut = new object();
    msgIn = typeDialogue.GetProperty("MessageIn").GetValue(dialogue, null); // dialogue est passé en param de ma fonction le pb n'est pas là
    msgOut = typeDialogue.GetProperty("MessageOut").GetValue(dialogue, null);
    Puis, je crée une instance de mon objet et je lui affecte des valeurs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    object dgIn = Activator.CreateInstance(typeDgIn);
    IfGetValues(desParams, dgIn, typeDgIn.ToString());
    Tout cela fonctionne correctement.

    Mais c'est là où je galère.
    Il faut ensuite que j'appelle une fonction qui prend en paramètre des propriétés de msgIn (exemple msgIn.Header et msgIn.Body)
    Mais vu que je travaille avec des GetType.... je n'ai pas accès directement au contenu de msgIn.
    Donc, j'ai fait comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (Header)typeDgIn.GetProperty("Header").GetValue(msgIn, null)
    pour remplacer
    msgIn.Header (car je sais que y'a un Header dedans le debugger me l'affiche )
    Mais dans ma fonction, j'ai un message d'erreur : La référence d'objet n'est pas définie à une instance d'un objet.

    Est-ce que quelqu'un aurait une petite idée ou de la doc pour savoir comment je pourrais faire pour récupérer le contenu de msgIn et pour affecter des valeurs dedans?

    Merci d'avance

    JaCaDi

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    ben c'est pareil :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    msgIn.GetType().GetProperty("Header").SetValue(msgIn, valeur, null);
    Mais si tu connais les types à l'avance, à quoi ça sert de le faire dynamiquement ?

  3. #3
    Membre confirmé
    Avatar de Psycadi
    Homme Profil pro
    Chef de projet - Expert en message box
    Inscrit en
    Juillet 2003
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet - Expert en message box

    Informations forums :
    Inscription : Juillet 2003
    Messages : 147
    Par défaut
    Je le fais dynamiquement car les type que j'utilise viennent d'une dizaine de classe différente (passé en paramètre) et que bien qu'elles aient la même structure de base, des choses changent.

    Merci pour ton aide.

    Par contre, si je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    msgIn.GetType().GetProperty("Header").SetValue(msgIn, MonHeaderAMoi, null);
    Il m'envoi ballader en disant :
    La référence d'objet n'est pas définie à une instance d'un objet.

  4. #4
    Membre confirmé
    Avatar de Psycadi
    Homme Profil pro
    Chef de projet - Expert en message box
    Inscrit en
    Juillet 2003
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet - Expert en message box

    Informations forums :
    Inscription : Juillet 2003
    Messages : 147
    Par défaut
    Ok, c'est moi qui suit un boulet. Je sais pas écrire.

    ça marche nickel

    Merci pour ton aide

  5. #5
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par JaCaDi Voir le message
    Je le fais dynamiquement car les type que j'utilise viennent d'une dizaine de classe différente (passé en paramètre) et que bien qu'elles aient la même structure de base, des choses changent.
    Dans ce cas, tu ne devrais pas plutôt utiliser l'héritage ?

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

Discussions similaires

  1. [PHP 5.0] Accès "dynamique" à une propriété d'un objet
    Par yohky dans le forum Langage
    Réponses: 5
    Dernier message: 02/06/2010, 17h02
  2. [CSS/Javascript] Changement des propriété CSS dynamiquement
    Par heladar dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 06/02/2009, 13h33
  3. Réponses: 4
    Dernier message: 02/01/2009, 19h34
  4. Réponses: 4
    Dernier message: 19/04/2007, 00h23
  5. problème d'accès a des éléments créés dynamiquement
    Par Pymm dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 21/07/2005, 18h13

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