[英]Call generic method which T is a Type
有一种通用方法可以从实体中选择一个字段,如下所示
public object GetOrderDynamically<T>(Expression selectPredicate, Expression predicate, Type type)
{
var order = orderFacade.FetchMulti((Expression<Func<Order, bool>>) predicate).AsQueryable();
return order.Select((Expression<Func<Order, T>>)selectPredicate).FirstOrDefault();
}
调用方法的搜索结果是这个
问题:我想澄清所选字段的类型。 但是此方法位于业务层中,我可以将其与接口一起使用。 实际上,将使用IoC将业务层类注入到我的类中。
我想以某种方式调用反射方法,该方法通过注入实例化,并且能够将T设置为Type
任何帮助。 谢谢
您想使用MethodInfo上可用的MakeGenericMethod方法,例如
someTarget.GetType()
.GetMethod("SomeGenericMethod")
.MakeGenericMethod(typeof(SomeGenericArgument)
.Invoke(someTarget, someParameters);
也可以看看:
编辑-对于给定的例子
orderBiz.GetOrderDynamically <tt>(selectExp,predicateExp); – unos baghaii 5分钟前
orderBiz.GetType().GetMethod("GetOrderDynamically").MakeGenericMethod(tt).Invoke(orderBiz, new object [] { selectExp, predicateExp });
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.