2011-03-09 6 views
0

Désolé s'il s'agit d'un doublon, je n'ai pas trouvé ce que je suis après - tout semble parler de ILists.Spécification du type dynamique pour la méthode générique

Pour le moment, j'appelle des méthodes et je passe le type comme un générique qui fonctionne comme prévu mais qui cause la duplication de code. Je voudrais être en mesure de faire

Type.MakeGenericParameter() 

Mais cela nécessite un paramètre. J'appelle une méthode générique, ne créant pas un objet. La méthode générique n'est pas contenue dans un objet générique.

Comment puis-je faire quelque chose le long des lignes de

Type desiredType = typeof(IPendingProduct); 
... 
Product.Save<desiredType>(instance); 

Merci à l'avance.

Répondre

0
typeof(Product).GetMethod("Save").MakeGenericMethod(desiredType) 
     .Invoke(null, new object[] {instance}); 

pas agréable, hein? Notez que cela suppose également que Save est public + statique et n'a pas de collisions avec des surcharges.

+0

Ouais à droite - que la duplication de code ... décision difficile. À bientôt Marc. Les hypothèses étaient correctes. – Sam

Questions connexes