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 :

Manipulation generique d'une classe


Sujet :

ASP.NET

  1. #1
    Membre éclairé Avatar de titan_33
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    245
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 245
    Par défaut Manipulation generique d'une classe
    Bonjour

    J'ai un traitement qui scane toutes les propriétés de ma classe DB_CLASS1 et qui met les propriétés de type string en majuscule
    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
        public static DB_CLASS1 AllStringUpper(DB_CLASS1 oCLASS1)
        {
            string sData = "";
            if (oCLASS1 != null)
            {
                foreach (PropertyInfo info in typeof(DB_CLASS1).GetProperties())
                {
                    if (info.PropertyType == typeof(String))    // Test que le Type de la donnée membre est System.String
                    {
                        sData = (string)info.GetValue(oCLASS1, null);
                        if (string.IsNullOrEmpty(sData))
                        {
                            // On force la conversion en majuscule
                            info.SetValue(oCLASS1, sData.ToUpper(), null);
                        }
                    }
                }
            }
            return oCLASS1;
        }
    Super ça marche terrible.

    Aujourd'hui je dois faire ce même traitement mais pour DB_CLASS2, DB_CLASS3.

    Toutefois dans ma méthode AllStringUpper j'ai typé ma classe manipulée avec "DB_CLASS1" et je ne parviens pas à faire fonctionner ma méthode en utilisant par exemple le type Object.

    Merci d'avance pour votre aide

    Titan

  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 : 43
    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
    il suffit de remplacer typeof(DB_CLASS1) par obj.GetType()

  3. #3
    Membre éclairé Avatar de titan_33
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    245
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 245
    Par défaut
    Effectivement cela fonctionne du tonnère avec le code ci-dessous

    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
        public static Object AllStringNotNull_Object(Object oObject)
        {
            string sData = "";
            if (oObject != null)
            {
                foreach (PropertyInfo info in oObject.GetType().GetProperties())
                {
                    if (info.PropertyType == typeof(String))    // Test que le Type de la donnée membre est System.String
                    {
                        sData = (string)info.GetValue(oObject, null);
                        if (!string.IsNullOrEmpty(sData))
                        {
                            info.SetValue(oObject, sData.ToLower(), null);   // Forçage à "" de la valeur de la donnée membre afin de ne pas être null                  
                        }
                    }
                }
            }
            return oObject;
        }
     
    }
    Merci encore à toi tomlev

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 15/07/2009, 14h00
  2. creer une class generique factory
    Par Battosaiii dans le forum Langage
    Réponses: 1
    Dernier message: 26/07/2007, 13h56
  3. Réponses: 1
    Dernier message: 24/01/2007, 21h48
  4. Réponses: 5
    Dernier message: 19/12/2006, 00h02
  5. manipulation de donnees membres dans une classe
    Par gfranck dans le forum C++
    Réponses: 3
    Dernier message: 14/11/2006, 09h55

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