我有一个保存搜索参数的类 (SearchParameters),然后我使用一个名为 Querybuilder 的通用类基于这些创建一个 linq 查询。这将返回结果并且一切正常。
结果显示在GridView中,我目前正在为gridivew实现自定义排序,我将要搜索的字段添加到SearchParameters对象(使用流畅的界面)
SearchParameters=SearchParameters.SortResultsBy(e.SortExpression,e.NewSortOrder.ToString());
我需要将列的数据类型用作我的 AddOrderByClause() 方法的通用参数:
public void AddOrderByClause<D>(string field, Type sourceDateType)
{
var orderExpression = Expression.Lambda<Func<T, D>>(Expression.Property(resultExpression, field), resultExpression);
rootExpression = Expression.Call(
typeof(Queryable),
"OrderBy",
new Type[] { typeof(T), typeof(D) },
rootExpression,
orderExpression);
}
我可以很容易地找到列的数据类型,但我如何将它传递给 AddOrderByClause()
(通用参数 D)?
最佳答案
public void AddOrderByClause<D,E>(string field, E sourceDataType)
{
.....
}
关于c# - 使用方法参数作为泛型类型参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10634260/