如何实现泛型方法和通用参数的反射?

时间:2014-04-02 16:47:47

标签: c# generics reflection

这里的实际实现看似没有反思:

IEnumerable<Foo> SelectWrapper(ExpressionNode orderClause)
{
    var data = context.Select<Foo>(new IClause<Foo>[]{new Clause<Foo, int> (orderClause)});
    return data;
}

但是我有一个像下面这样的通用方法,我已经提供了未知的类型t,它在运行时将是Foo,所以我尝试了这样:

IEnumerable<Type> SelectWrapper(Type t, ExpressionNode orderClause)
{
    MethodInfo getSelect = typeof(RepoClass).GetMethod("Select");
    MethodInfo genericSelect = getSelect.MakeGenericMethod(t);
    generic.Invoke(......); //how to invoke generic parameters here with generic method

    //....
    return someValue;
}

所以我的问题是:通过反射实现此代码的可行方法是什么?

非常感谢..

0 个答案:

没有答案