Bonjour,

Je suis sur un problème assez épineux.

Je voudrais passer un type (au format : Type monType) à une fonction ayant une signature comme cela :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
List<T> MaFonction<T>(params) { ... }
En fait, l'idée générale est de charger une liste d'objet dans une propriété d'un objet. Via un attribut, je définis que telle propriété, s'associe à tel type :

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
 
class Marque 
{
public int Identifiant { get; set; }
public string Nom { get; set; }
}
 
class Utilisateur 
{
public string Nom { get; set; }
 
[MonAttributType(typeof(Marque))]
public IEnumerable<Marque> Marques { get; set; }
 
}

Et de manière générique, allez charger par utilisateur, sa liste de marque, en utilisant la fonction utilisé plus haut. Et c'est là que je n'arrive pas à relayer l'information à ma fonction pour lui dire que je veux une liste d'un certain type connu... Un peu de cette manière :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
foreach(Property p in Utilisateur.GetProperties()) 
{
   if(p.GetAttributes<MonAttributType>() != null)
{
Type monType = p.GetAttributes<MonAttributType>().First().MonType;
 
// là je dois appeler ma fonction citée plus haut, en lui passant le type définit par l'attribut de propriété avec ce genre d'appel, mais non supporté
var monResultat = MaFonction<monType.GetType()>(mesDonnees);
 
 
}
 
}
En gros, c'est du mapping DB <-> Classe objet, et jusqu'à maintenant, je gérais seulement les objets "plats". Je souhaite maintenant gérer les objets complexes...

Merci à vous d'avance