1

私は持っている:

class X<t1>
{
   class Y<t2>
   {

      public Y<t2> Skip(int count)
      {
          var mi = (MethodInfo)MethodBase.GetCurrentMethod();
          var f = Expression.Call(null, mi,Expression.Constant(count));
          var x = this.Provider.CreateQuery(f);
          return something_else;
      }
   }
}

Y`1 Skip(Int32) にはジェネリック パラメータが含まれています。

メソッドをジェネリックにできないため、method.MakeGenericType を呼び出すことができます

Expression.Call を作成する方法について何か考えはありますか?

私も試しました:

var f = Expression.Call(typeof(Y<>), "Skip", new Type[] { gt }, Expression.Constant(count));

今回私は得る:

1+Yタイプ 'X 1[t1,t2]'にメソッド 'Skip' が存在しません。

4

2 に答える 2