C# 使用反射将委托强制转换为泛型

C# 使用反射将委托强制转换为泛型,c#,generics,reflection,parameters,delegates,C#,Generics,Reflection,Parameters,Delegates,我正在使用反射调用一个通用方法: public DataTable GetEntityData<T>(string EntitiesType, string Query, int Page, List<string> Columns, string OrderByClause, object[] QueryArgs) { using (var model = new MK3Entities()) { Type ET = GetEntitie

我正在使用反射调用一个通用方法:

public DataTable GetEntityData<T>(string EntitiesType, string Query, int Page, List<string> Columns, string OrderByClause, object[] QueryArgs)
{
    using (var model = new MK3Entities())
    {
        Type ET = GetEntitiesType(EntitiesType);

        MethodInfo method = typeof(MK3Entities).GetMethod("GetEntityData");
        MethodInfo generic = method.MakeGenericMethod(ET);

        var obj = (generic.Invoke(model, new object[] { Query, NUMBEROFWIDGETRESULTS, Page, Columns, OrderByClause, QueryArgs }) as DataTable);

        return obj;
    }
}
在创建泛型方法的第一个
GetEntityData
内部,我还需要创建一个泛型方法作为委托,作为参数传入,该参数将变量ET作为类型传入


有人知道我该怎么做吗?

我通过传入泛型反射解决了这个问题,尽管原始GetEntityData现在接受名为FormatInfo的methodinfo作为参数,然后将泛型绑定到输入类型ET

Type DelegateParam = typeof(MK3Entities.PostProcessing<>).MakeGenericType(ET);

MethodInfo GenericParam = FormatInfo.MakeGenericMethod(ET);
var Formatter = Delegate.CreateDelegate(DelegateParam, GenericParam);

var obj = (generic.Invoke(model, new object[] { Query, NUMBEROFWIDGETRESULTS, Page, Columns,     OrderByClause, QueryArgs, Formatter }) as DataTable);
Type DelegateParam=typeof(MK3Entities.PostProcessing);
MethodInfo GenericParam=FormatInfo.MakeGenericMethod(ET);
var Formatter=Delegate.CreateDelegate(DelegateParam,GenericParam);
var obj=(generic.Invoke(model,new object[]{Query,NUMBEROFWIDGETRESULTS,Page,Columns,OrderByClause,QueryArgs,Formatter})作为DataTable);
Type DelegateParam = typeof(MK3Entities.PostProcessing<>).MakeGenericType(ET);

MethodInfo GenericParam = FormatInfo.MakeGenericMethod(ET);
var Formatter = Delegate.CreateDelegate(DelegateParam, GenericParam);

var obj = (generic.Invoke(model, new object[] { Query, NUMBEROFWIDGETRESULTS, Page, Columns,     OrderByClause, QueryArgs, Formatter }) as DataTable);