如何执行 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...);
}
为了解决这个问题,我使示例尽可能简单。有人知道一种方法吗?
我发现我可以这样做:
var t = typeof(C1EntitySet<,,>);
t.MakeGenericType(new Type[]{t,t1,t2});