如何执行 Expression.New,用于在编译时不知道 GenericType 参数的泛型类型

本文关键字:编译 不知道 GenericType 泛型类型 参数 用于 何执行 执行 New Expression | 更新日期: 2023-09-27 18:29:05

public MyType<T,T1,T2>
{
}

我需要做一个Expression.New(typeof(MyType<,,>))

在编译时我不知道T,T1,T2。表达式 new 位于方法内

Expression CreateExpression(Type t, Type t1)
{
     Type t2 = Lookup(t,t1);
     return Expression.New(typeof(MyType<t,t1,t2>), ...constructorparams...);
}

为了解决这个问题,我使示例尽可能简单。有人知道一种方法吗?

如何执行 Expression.New,用于在编译时不知道 GenericType 参数的泛型类型

我发现我可以这样做:

    var t = typeof(C1EntitySet<,,>);
    t.MakeGenericType(new Type[]{t,t1,t2});