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

Dotnet Discussion :

Conversion d'un type (chaine) en type concret


Sujet :

Dotnet

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 37
    Par défaut Conversion d'un type (chaine) en type concret
    Bonjour,

    Je cherche à convertir un type écrit en chaine de caractère en type concret, pour cela j'utilise un fichier XML qui définie les propriétés, le type et la valeur de chaque propriété de l'objet à créer.
    Ex:
    <control name="Text" type="System.Windows.Forms.Button" valeur="mon bouton" visible="true" .../>

    Je reconstruie donc mon control en récupérant son type avec un Type.GetType("System.Windows.Forms.Button, System.Windows.Forms"), je peut ainsi créer mon objet et lui attribuer la valeur de chaque propriété.

    Mais comment puis-je faire avec les enums? Sachant que je ne connait pas à l'avance le contenu du fichier XML, les classes ou les enums utilisés.

    Quelqu'un a une idée.

    Merci

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 37
    Par défaut Auto Réponse
    Bon ben j'ai trouvé tout seul, voici une partie de la solution :
    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
     
            private void button1_Click(object sender, EventArgs e)
            {
                // Récupération du type d'un control
                Type typeButton = button1.GetType();
     
                // Récupération de toutes les propriétés du bouton
                PropertyInfo[] propInfos = typeButton.GetProperties();
     
                // Itération sur toutes les propriétés
                foreach (PropertyInfo property in propInfos)
                {
                    // Recherche d'une propriété de type Enum
                    if (property.Name.Equals("BackgroundImageLayout"))
                    {
                        // On force la valeur de l'enum et on enregistre dans un objet
                        object o = Enum.Parse(property.PropertyType, "Center");
     
                        Debug.WriteLine(String.Format("Valeur avant attribution de la valeur de l'enum {0}",
                            button1.BackgroundImageLayout));
     
                        // On change la valeur de la propriété BackgroundImageLayout du bouton
                        property.SetValue(button1, o, null);
     
                        Debug.WriteLine(String.Format("Valeur après attribution de la valeur de l'enum {0}",
                            button1.BackgroundImageLayout));
                    }
                }
            }
    Il ne me reste plus qu'a remplacer les chaines de caractères "GroupInterval" et "DateQuarter" par des variables issue d'un fichier XML. Il faut juste faire attention à ce que le type de la variable soit bien du type de l'Enum parser sinon ça ne plante pas mais les temps de réponse sont super long.

    Bon j'ai mal au crâne, un apéro vite...heu non un aspro.
    et Voilà.

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 02/10/2014, 12h50
  2. Réponses: 17
    Dernier message: 11/04/2011, 08h55
  3. SQL UPDATE - Pb avec chaine de type '&chaine'
    Par JIPO91 dans le forum SQL
    Réponses: 2
    Dernier message: 07/12/2007, 11h11
  4. [LG]Type chaine avec plus de 255 car et EOF intempestif.
    Par jpclabaux dans le forum Langage
    Réponses: 2
    Dernier message: 27/10/2004, 10h39
  5. Réponses: 2
    Dernier message: 05/06/2002, 12h29

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