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 :

[C#] Automatiser le remplissage d'une class


Sujet :

C#

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 10
    Points : 7
    Points
    7
    Par défaut [C#] Automatiser le remplissage d'une class
    Bonjour,

    Je suis débutant en csharp.
    J'espère arriver à me faire comprendre.

    J'ai créé la class suivante :
    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
     
    public class MembreAD
        {
            public string distinguishedname = null;
            public string countrycode = null;
            public string cn = null;
            public string lastlogoff = null;
            public string adspath = null;
            public string ipphone = null;
            public string facsimiletelephonenumber = null;
            public string usncreated = null;
            public string objectguid = null;
            public string othermobile = null;
            public string whenchanged = null;
            public string memberof = null;
            public string homephone = null;
            public string accountexpires = null;
            public string displayname = null;
            public string profilepath = null;
            public string primarygroupid = null;
            public string badpwdcount = null;
            public string objectclass = null;
            public string objectcategory = null;
            public string instancetype = null;
            public string homedrive = null;
            public string info = null;
            public string samaccounttype = null;
            public string homedirectory = null;
            public string whencreated = null;
            public string lastlogon = null;
            public string useraccountcontrol = null;
            public string otheripphone = null;
            public string samaccountname = null;
            public string employeetype = null;
            public string givenname = null;
            public string mail = null;
            public string objectsid = null;
            public string lockouttime = null;
            public string mobile = null;
            public string description = null;
            public string scriptpath = null;
            public string pwdlastset = null;
            public string wwwhomepage = null;
            public string logoncount = null;
            public string codepage = null;
            public string name = null;
            public string usnchanged = null;
            public string pager = null;
            public string userprincipalname = null;
            public string badpasswordtime = null;
            public string employeeid = null;
            public string sn = null;
            public string telephonenumber = null;
            public string logonhours = null;
        }
    Elle utilise les différentes prorperties d'un utilisateur de l'actice directory.

    J'ai fais une routine qui me permet de récupérer ces infos

    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
     
     
                MembreAD Membre = new MembreAD();
     
                DirectoryEntry Objet = new DirectoryEntry("LDAP://" + Utilisateur);
                DirectorySearcher Recherche = new DirectorySearcher(Objet);
                SearchResult Resultat = Recherche.FindOne();
                DirectoryEntry Valeurs = Resultat.GetDirectoryEntry();
     
                ResultPropertyCollection ResultatCollection;
                ResultatCollection = Resultat.Properties;
     
                foreach (string Cle in ResultatCollection.PropertyNames)
                {
     
                    foreach (Object Collection in ResultatCollection[Cle])
                    {
                        string Contenu = Collection.ToString();
                    }
                }
    Ce que je voudrais c'est remplir automatiquement ma variable "membre" qui est de type "MembreAD" par les valeurs obtenues successivement dans "Contenu.

    Je ne sais pas le faire.

    Merci de mmontrer comment.

  2. #2
    Membre émérite Avatar de Guulh
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    2 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 2 160
    Points : 2 925
    Points
    2 925
    Par défaut
    en gros, ta classe, c'est un Dictionary<string, string> : elle associe une chaîne à une autre.

    Tu peux donc la représenter ainsi :
    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
    public class MembreAD
        {
          private Dictionary<string, string> data = new Dictionary<string, string>();
          // pour stocker les données
          public void SetValue(string clé, string valeur)
          {
            data[clé] = valeur;
          }
          // pour récupérer les données
          public string GetValue(string clé)
          {
            if (data.ContainsKey(clé))
              return data[clé];
            else
              return null;
          }
        }
    Et après, tu appelles SetValue dans la boucle pour affecter ; tu appelles GetValue("distinguishedname") pour récupérer la valeur.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 10
    Points : 7
    Points
    7
    Par défaut
    Merci,

    J'obtiens exactement le résultat voulu.

    Je vais analysé ca pour le comprendre et l'assimiler.

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 10
    Points : 7
    Points
    7
    Par défaut Comment la rendre Ienumerable ?
    Bonjour,

    Maintanenant que j'ai cette Class MembreAD, comment faire pour pouvoir utiliser un "foreach" ?

    Je sais qu'il faut rendre la class IEnumerable, mais je ne sais pas du tout le faire.

    Merci de me montrer.

  5. #5
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    Code c# : 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
    public class MembreAD : IEnumerable<KeyValuePair<string,string>>
            {
                private Dictionary<string, string> data = new Dictionary<string, string>();
                //Encore plus fun pour pouvoir faire leMembreAd["valeur"] = truc
                public string this[string key]
                {
                    get {return GetValue(key);}
                    set { SetValue(key,value);}
                }
     
                // pour stocker les données
                public void SetValue(string clé, string valeur)
                {
                    data[clé] = valeur;
                }
                // pour récupérer les données
                public string GetValue(string clé)
                {
                    if (data.ContainsKey(clé))
                        return data[clé];
                    else
                        return null;
                }
     
                #region IEnumerable<KeyValuePair<string,string>> Membres
     
                public IEnumerator<KeyValuePair<string, string>> GetEnumerator()
                {
                    return data.GetEnumerator();
                }
     
                #endregion
     
                #region IEnumerable Membres
     
                System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
                {
                    return data.GetEnumerator();
                }
     
                #endregion
     
                public virtual Dictionary<string, string>.KeyCollection Keys
                {
                    get { return data.Keys; }
                }
     
                public virtual Dictionary<string, string>.ValueCollection Values
                {
                    get { return data.Values; }
                }
            }

    etc...

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 10
    Points : 7
    Points
    7
    Par défaut
    Ecellent,

    Merci beaucoup.

  7. #7
    Membre émérite Avatar de Guulh
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    2 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 2 160
    Points : 2 925
    Points
    2 925
    Par défaut
    Ceci dit, si ta classe se résume à ça, elle sert à rien. Tu pourrais avoir simplement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public class MembreAD : Dictionary<string, string> { }

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 10
    Points : 7
    Points
    7
    Par défaut
    Oui c'est entierrement vrai,

    cela dit, je ne connaissais pas le Dictionary, et je m'étais basé sur ta 1ère réponse.

  9. #9
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    En fait, même plus besoin de créer une autre classe dans ce cas, tu peut juste utiliser Dictionary<string, string> ...

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

Discussions similaires

  1. [PHP-JS] Automatiser le remplissage d'une zone texte
    Par khamett dans le forum Langage
    Réponses: 4
    Dernier message: 10/10/2007, 08h40
  2. Réponses: 14
    Dernier message: 28/02/2007, 09h53
  3. Automatisation du remplissage d'une BD
    Par Matmal11 dans le forum Linux
    Réponses: 4
    Dernier message: 24/07/2006, 13h48
  4. Variable d'une Classe Ancêtre
    Par Génie dans le forum Langage
    Réponses: 3
    Dernier message: 18/09/2002, 19h24
  5. Sortir un typedef d'une classe
    Par Theophil dans le forum C++Builder
    Réponses: 13
    Dernier message: 03/07/2002, 17h21

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