Reflection et constructeur d'une classe inconnue
Bonsoir à tous !
Voici un nouveau probléme, j'entrevoie la solution mais je ne trouve pas l'implémentation :/
le principe est d'utiliser la reflection pour instancier une classe "inconnue" mais qui implémente une interface.
typiquement une interface IPoco et des classes contacts, villes etc... qui sont les liaisons (tables) avec une BDD SQL;
Voici le principe http://www.codeproject.com/Articles/...-in-C-Tutorial
Comme le montre le code il tape en "dur" les propriétés et les valeurs.. Donc inutile pour moi
Voici mon code :
Code:
1 2 3 4 5 6 7 8 9 10 11
| // Récupérer le type de l'objet en réflection
Type type = ClassePoco.GetType();
// récupére tous les Get publics de la classe en filtrant par instance, public et property
PropertyInfo[] proprietes = type.GetProperties(
BindingFlags.Instance
| BindingFlags.GetProperty
| BindingFlags.Public);
// récupére le constructeur de la classe via son nom (moins le namespace)
ConstructorInfo construct = type.GetConstructor(Type.EmptyTypes);//.GetMethod(type.ToString().Remove(0, 9));
// reste à trouver comment remplir les propriétés !
object obj = construct.Invoke(new object[] { }); |
je comprends qu'a la place de new object[] je devrais placer proprietes (PropertyInfo[]) et dans les {} les valeurs de chaque Propriétés (que je sais remplir via les infos de la table SQL).
Je sais pas si je suis clair, mais autant en SQL c'est facile à faire, autant avec des POCO c'est chaud the night :/ Merci pour votre lecture et vos retour. KENAVO et bonne PROG ADN