我有:
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” 。