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>
J'ai essayé une paire de chose comme IEnumerable, ICollection,Collection, Ilist...
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); } }
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![]()
Partager