【发布时间】:2015-03-16 13:57:17
【问题描述】:
有一个通用方法可以从实体中选择一个字段,如下所示
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();
}
调用该方法的搜索结果为this
问题:我想澄清所选字段的类型。但是这个方法位于业务层,我可以将它与它的接口一起使用。实际上,业务层类将通过 IoC 注入到我的类中。
不知何故,我想用反射调用我的方法,这些方法通过注入实例化并能够将 T 设置为类型
任何帮助。谢谢
【问题讨论】:
-
不清楚你想获得什么...试着写下你如何调用方法以及你想如何调用方法。
-
您是在问如何通过反射调用泛型方法?目前对我来说有点不清楚......
-
我想这样称呼它 var tt = typeof(Datetime); orderBiz.GetOrderDynamically(selectExp, predicateExp);
-
混合泛型和反射并不是一个好主意。如果该方法采用
Type,它不应该也有一个<T>,这意味着同样的事情——并且通过反射调用它不会利用<T>。您还不如直接返回object并完全忘记<T>。
标签: c# generics reflection