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 :

la valeur de PropertyInfo


Sujet :

C#

  1. #1
    Membre émérite
    Avatar de azstar
    Homme Profil pro
    Architecte Technique BizTalk/.NET
    Inscrit en
    Juillet 2008
    Messages
    1 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Technique BizTalk/.NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 198
    Points : 2 424
    Points
    2 424
    Par défaut la valeur de PropertyInfo
    bonjour ;

    voila j'ai un classe nomme Personne
    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
     
    public Class Personne
    {
       private int _PersonneID;
        private string _PersonneName;
     
       public int PersonneID
       {
             get {
                     return _PersonneID;
                   }
     
            set{
                    _PersonneID=Value;
     
                 }
     
      }
     
      public int PersonneName
       {
             get {
                     return _PersonneName;
                   }
     
            set{
                    _PersonneName=Value;
     
                 }
     
      }
     
     
    }
    est mon code d'appel .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Personne t = new Personne(); 
                t.PersonneID= 12;
                t.PersonneName = "azstar";
     
                    foreach (System.Reflection.PropertyInfo h in t.GetType().GetProperties()  )
                    {              
     
     
                        MessageBox.Show(h.PropertyType.ToString());
                        MessageBox.Show(h.Name);
                    }
    mon probleme est que je n'arrive pas a trouve la valeur de PropertyInfo automatiquement son passe pas t.PersonneID ou t.PersonneName
    j'ai essai le PropertyInfo.Getvalue mais il me retourne une exception.

    et merci d'avance

  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 : 42
    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
    Points : 39 753
    Points
    39 753
    Par défaut
    Le 2e paramètre ne sert que pour les propriétés indexées, pour une propriété normale on passe toujours null

  3. #3
    Membre émérite
    Avatar de azstar
    Homme Profil pro
    Architecte Technique BizTalk/.NET
    Inscrit en
    Juillet 2008
    Messages
    1 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Technique BizTalk/.NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 198
    Points : 2 424
    Points
    2 424
    Par défaut
    Merci ,

    ça a marché merci infiniment de votre aide tomlev j'espère que cette discussion va aider les autres qui ont le même problème.



    merci encore.

  4. #4
    Membre émérite
    Avatar de azstar
    Homme Profil pro
    Architecte Technique BizTalk/.NET
    Inscrit en
    Juillet 2008
    Messages
    1 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Technique BizTalk/.NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 198
    Points : 2 424
    Points
    2 424
    Par défaut
    voila ma 2 eme etape consiste a teste si cette PropertyInfo est une List .
    es vous avez une aidée comment faire ça

  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 : 42
    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
    Points : 39 753
    Points
    39 753
    Par défaut
    Citation Envoyé par azstar Voir le message
    voila ma 2 eme etape consiste a teste si cette PropertyInfo est une List .
    es vous avez une aidée comment faire ça
    Quel genre de liste ? y en a un paquet... si tu veux tester par exemple si c'est une List<string>, tu peux faire ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if (h.PropertyType == typeof(List<string>))
    {
        ...
    }
    si tu veux tester si c'est une List<T>, où T est n'importe quel type, c'est un peu plus compliqué :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if (h.PropertyType.IsGenericType && h.PropertyType.GetGenericTypeDefinition() == typeof(List<>))
    {
        ...
    }
    Après, tu peux aussi vouloir tester si c'est n'importe quel type de liste (i.e. si le type implémente l'interface IList<T>)... là ça devient un peu affreux, mais avec Linq on s'en sort assez bien :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if (h.PropertyType.GetInterfaces()
                      .Any(i => i.IsGenericType && i.GetGenericTypeDefinition() == typeof(IList<>)))
    {
        ...
    }

  6. #6
    Membre émérite
    Avatar de azstar
    Homme Profil pro
    Architecte Technique BizTalk/.NET
    Inscrit en
    Juillet 2008
    Messages
    1 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Technique BizTalk/.NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 198
    Points : 2 424
    Points
    2 424
    Par défaut
    les donnees de mes classes sont des types

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    string,int32,boolean,Datetime
    //les list 
    List<mesclasses>//j'ai plusieurs type de list
    voila j'ai trouve ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    if (! h.PropertyType.BaseType.IsGenericType  ) {
    }
    et je pense que il a fait la faire . si vous avez une suggestion sur ma solution je vous prie de la dit.
    merci encore.

  7. #7
    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 : 42
    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
    Points : 39 753
    Points
    39 753
    Par défaut
    Citation Envoyé par azstar Voir le message
    voila j'ai trouve ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    if (! h.PropertyType.BaseType.IsGenericType  ) {
    }
    et je pense que il a fait la faire .
    Ben non, ce test renvoie true pour TOUS les types génériques, pas seulement List<T>...

    Citation Envoyé par azstar Voir le message
    si vous avez une suggestion sur ma solution je vous prie de la dit.
    Il y a tout ce qu'il faut dans ma réponse précédente... vu ce que tu cherches à faire, je pense que c'est mon 2e exemple de code qui correspond à ton cas

  8. #8
    Membre émérite
    Avatar de azstar
    Homme Profil pro
    Architecte Technique BizTalk/.NET
    Inscrit en
    Juillet 2008
    Messages
    1 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Technique BizTalk/.NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 198
    Points : 2 424
    Points
    2 424
    Par défaut
    Citation Envoyé par tomlev Voir le message
    Ben non, ce test renvoie true pour TOUS les types génériques, pas seulement List<T>...



    Il y a tout ce qu'il faut dans ma réponse précédente... vu ce que tu cherches à faire, je pense que c'est mon 2e exemple de code qui correspond à ton cas
    pour les cas ou on des classes qui héritent d'un list voila le code qui marche c'est mon cas aussi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     if (!(h.PropertyType.BaseType.IsGenericType && h.PropertyType.BaseType.GetGenericTypeDefinition() == typeof(List<>)))
                    {
    merci encore tomlev

  9. #9
    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 : 42
    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
    Points : 39 753
    Points
    39 753
    Par défaut
    n'oublie pas le bouton

  10. #10
    Membre émérite
    Avatar de azstar
    Homme Profil pro
    Architecte Technique BizTalk/.NET
    Inscrit en
    Juillet 2008
    Messages
    1 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Technique BizTalk/.NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 198
    Points : 2 424
    Points
    2 424
    Par défaut
    Désolé et merci

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

Discussions similaires

  1. Récupérer les valeurs dans une PropertyInfo
    Par Psycadi dans le forum C#
    Réponses: 2
    Dernier message: 13/06/2008, 12h17
  2. récupérer la valeur du 2ème champ dans un DBLookUpListBox
    Par jakouz dans le forum Bases de données
    Réponses: 3
    Dernier message: 20/07/2004, 16h45
  3. récupérer la valeur de sortie d'un thread
    Par jakouz dans le forum Langage
    Réponses: 3
    Dernier message: 31/07/2002, 11h28
  4. [XSLT]position d'un element de valeur specifique
    Par squat dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 25/07/2002, 16h42
  5. Réponses: 2
    Dernier message: 22/07/2002, 18h02

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