Vous ne pouvez pas, directement. Le point de génériques est de fournir au moment de la compilation de sécurité de type, où vous savez le type qui vous intéresse au moment de la compilation, et peut travailler avec les instances de ce type. Dans votre cas, vous ne connaissez que le Type
de sorte que vous ne pouvez pas obtenir à tout moment de la compilation vérifie que tous les objets sont des instances de ce type.
Vous devez appeler la méthode par réflexion - quelque chose comme cela:
// Get the generic type definition
MethodInfo method = typeof(Session).GetMethod("Linq",
BindingFlags.Public | BindingFlags.Static);
// Build a method with the specific type argument you're interested in
method = method.MakeGenericMethod(typeOne);
// The "null" is because it's a static method
method.Invoke(null, arguments);
Si vous avez besoin d'utiliser ce type de beaucoup, vous trouverez peut-être plus pratique d'écrire votre propre méthode générique qui appelle toutes les autres méthodes génériques dont il a besoin, et ensuite appeler votre méthode avec la réflexion.