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

ASP.NET Discussion :

Parcourir les propriétés d'une classe


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2003
    Messages
    274
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Luxembourg

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

    Informations forums :
    Inscription : Décembre 2003
    Messages : 274
    Par défaut Parcourir les propriétés d'une classe
    Bonjour à toutes et à tous.

    J'ai créé une classe qui contient une trentaine de propriétés.
    J'aimerais maintenant pouvoir parcourir l'ensemble des propriétés afin d'en récupérer le nom ainsi que la valeur.
    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public class MaBellePetiteClasse
        Public Property UnePropriete As String
        Public Property UneSeconde As String
    End class
    Bien entendu, les propriétés sont définies correctement hein
    Maintenant je voudrais pouvoir faire dans le code quelque chose comme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    For i As Int32 = 0 To MaBellePetiteClasse.FautQueJeRecupèreLeCompteur
        SonNom = MaBellePetiteClasse.ProPriété(i)
        SaValeur = ????
    Next
    Bon voilà en gros ce que j'essaye d'exprimer

  2. #2
    Membre chevronné
    Inscrit en
    Octobre 2005
    Messages
    400
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 400
    Par défaut
    Il faut faire de l'introspection (Reflection).

    En c# ça donnerait un truc du genre (je me rappel plus exactement)


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    PropertyInfo[] props = typeof(Maclasse).GetProperties(...)
     
    foreach(PropertyInfo p in props)
    {
     
    ...
    }
    En VB, je ne sais pas la syntaxe exact

  3. #3
    Membre très actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2003
    Messages
    274
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Luxembourg

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

    Informations forums :
    Inscription : Décembre 2003
    Messages : 274
    Par défaut
    J'avais oublié de préciser que j'ai déjà testé cette possibilité mais le problème est que je récupères toutes les propriétés même les GET et SET.
    Mon but est de n'avoir que celles que j'ai définies dans ma classe.
    Faut-il utiliser un truc du genre <Serialisable> ???

  4. #4
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Par défaut
    Ben une propriété, c'est ça justement. C'est une méthode Get et une méthode Set.
    De plus quand je fais ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    foreach (var info in typeof(String).GetProperties())
    {
        Console.WriteLine(info.Name);
    }
    J'obtiens bien Chars et Length.

    Montre nous le code que tu as utilisé.
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

  5. #5
    Membre très actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2003
    Messages
    274
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Luxembourg

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

    Informations forums :
    Inscription : Décembre 2003
    Messages : 274
    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
    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
    56
    57
     
     
    Public Class StartOptions
     
        Public Sub New()
     
        End Sub
     
        Private _id As Int16 = 0
        Public Property Id() As Int16
            Get
                Return _id
            End Get
            Set(ByVal value As Int16)
                _id = value
            End Set
        End Property
     
        Private _serverId As Int16 = 0
        Public Property ServerId() As Int16
            Get
                Return _serverId
            End Get
            Set(ByVal value As Int16)
                _serverId = value
            End Set
        End Property
     
        Private _3GB As String = String.Empty
        Public Property GB() As String
            Get
                Return _3GB
            End Get
            Set(ByVal value As String)
                _3GB = value
            End Set
        End Property
     
        Private _baseVideo As String = String.Empty
        Public Property BaseVideo() As String
            Get
                Return _baseVideo
            End Get
            Set(ByVal value As String)
                _baseVideo = value
            End Set
        End Property
     
        Private _baudRate As String = String.Empty
        Public Property BaudRate() As String
            Get
                Return _baudRate
            End Get
            Set(ByVal value As String)
                _baudRate = value
            End Set
        End Property
    Donc, voici ce que j'ai pour le moment : une classe comportant une 30aine de propriétés et je voudrais pouvoir lister ces propriétés et obtenir leur valeur

    Possible ou non ?

  6. #6
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Par défaut
    Oui c'est possible, le code à utiliser t'a été donné. Maintenant, ce qui nous intéresse, c'est de voir le code que tu utilisais et qui te permettait de dire que cette approche ne fonctionne pas. Tu as dû te planter quelquepart.
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 06/10/2008, 12h04
  2. Parcourir les éléments d'une classe
    Par rvhp2 dans le forum Langage
    Réponses: 10
    Dernier message: 01/10/2008, 19h06
  3. [VB.NET 2005] Parcourir les propriétes d'une Class
    Par ricil78 dans le forum Windows Forms
    Réponses: 1
    Dernier message: 27/03/2007, 21h47
  4. Parcourir les membres d'une classe
    Par oodini dans le forum C++
    Réponses: 4
    Dernier message: 20/10/2006, 22h59
  5. [VB.NET] Parcourir les attributs d'une classe
    Par pasqwal dans le forum Windows Forms
    Réponses: 3
    Dernier message: 15/02/2005, 09h47

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