J'essaie d'invoquer une méthode avec la réflexion qui a un type générique de retour, comme ceci:Comment appeler une méthode avec un type générique de retour en utilisant la réflexion
public class SomeClass<T>
{
public List<T> GetStuff();
}
Je reçois une instance de SomeClass avec appel à la méthode générique GetClass<T>
du référentiel.
MethodInfo lGetSomeClassMethodInfo = typeof(IRepository)
.GetMethod("GetClass")
.MakeGenericMethod(typeof(SomeClass<>);
object lSomeClassInstance = lGetSomeClassMethodInfo.Invoke(
lRepositoryInstance, null);
Après cela, c'est là que je tente d'invoquer la méthode GetStuff:
typeof(SomeClass<>).GetMethod("GetStuff").Invoke(lSomeClassInstance, null)
Je reçois une exception sur le fait que la méthode a des arguments génériques. Cependant, je ne peux pas utiliser MakeGenericMethod pour résoudre le type de retour. En outre, si au lieu de typeof(SomeClass<>)
j'utilise lSomeClassInstance.GetType()
(qui devrait avoir des types résolus) GetMethod("GetStuff")
renvoie null!
MISE À JOUR
J'ai trouvé la solution et sera bientôt poster la réponse.