Bonjour,

J'essaye depuis 2 heures de tester le type d'une propriété d'une classe.
Je voudrais "zapper" le traitement si celle-ci est une collection.
Je précise que ces "Collections" peuvent etre du type d'une classe perso qui hérite de Dictionnary<String,MaClasse>, List<MonAutreClasse>, Dictionnary<int,UneTroisièmeClasse>

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 foreach (System.Reflection.PropertyInfo fieldInf in this.GetType().GetProperties()) {
                if (fieldInf.PropertyType is IEnumerable) {
                }else{
                    ChampsAttribute attribut = trouveChamps(fieldInf.Name);
                    if (attribut.InnerJoinTableClasse != null) {
                        from.Append(attribut.InnerJoinTableClasse);
                        select.Append(GetTable(fieldInf.Name));
                        select.Append('.');
                    }
                    select.Append(attribut.NomChamps);
                }
            }
J'ai essayé une paire de chose comme IEnumerable, ICollection,Collection, Ilist...
Une petite idée??

Là je m'essaye aux attributs, histoire de voir comment cela fonctionne. Et pourquoi pas dans l'espoir de faire grosso-modo la même chose qu'hibernate, à savoir définir le champs, le type, la table... d'où proviennent les données de la propriété de ma classe.
Par cette "prouesse" cela me permettra d'avoir un code quasiment auto-géré au niveau de l'acces aux données. C'est à dire que les requêtes seront construite de façons dynamiques grâce aux annotations des propriétés.
Je sais que cela ne sera pas chose facile, à moins qu'il existe déjà une partie de faites (je ne voudrais pas réinventer la roue). Quelqu'un connaitrait-il ce genre d'API.
J'ai aussi découvert toute une floppée de xxxAttributes, mais les explications se font très rare voir absentes. J'aurais aimé savoir à quoi sert la classe ParameterAttributes?

Et autre chose, vous voyez dans le code le mot clé "is". Lui existe-t-il un contraire??

Bon j'arrete les questions, parce qu'avec ça j'aurais pu ouvrir plusieurs post.

En tout cas merci de la lecture