[英]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.