如何在generics方法调用中使用Type变量(C#)

我将一个Type变量传递给一个方法,我想在调用IQueryable.Join时将其用作通用参数,如下所示

 queryResult.Join( items, outerSelector, innerSelector, ( a, b) => a); 

它显然不起作用。 为了达到我的目的,我该怎么做? 谢谢!

基本上你必须用reflection来调用方法:

  • 使用Type.GetMethod获取通用方法模板
  • 调用MakeGenericMethod传入4种类型的参数
  • 调用传入常规参数的方法

这是一种痛苦:(

我不确定“类型变量”的详细信息,但如果变量已经是方法的通用参数,则可以将其用作通用参数来加入:

 public void MyMethod() { // do some stuff to get queryResult, then queryResult.Join(items, outerSelector, innerSelector, (a, b) => something); }