Вы не можете, прямо. Точка дженериков заключается в предоставлении безопасности типа compile-time , где вы знаете тип, который вам интересен во время компиляции, и можете работать с экземплярами этого типа. В вашем случае вы знаете только Type
, поэтому вы не можете получать какие-либо проверки времени компиляции, которые имеют объекты, которые у вас есть, экземпляры этого типа.
Вам нужно будет вызвать метод через отражение - что-то вроде этого:
// 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);
Если вам нужно использовать этот тип много, вам может быть удобнее написать собственный универсальный метод, который вызывает любые другие общие методы, которые ему нужны, а затем вызовите ваш метод с отражением.