function<T>() & passage de type
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:
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:
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:
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