我有一个功能,
public static IPagedResponse<T> GetPagedResponse<T, TAnon>(
this IQueryable<TAnon> query,
QueryableRequestMessage request)
where T : class
{
//...
}
我正在尝试将查询作为IQueryable
匿名类型传递。
var query = _repository.All.Select(
i => new //anon type
{
i.Id,
i.Name,
}
);
var result = query.GetPagedResponse<EftInterfaceDto, ??????>(request);
问题是我不知道用什么代替??????
?它似乎无法推断出来。任何使用.GetType()
或typeof()
我尝试过的组合都失败了。
我尝试将函数更改为,IQueryable<dynamic>
但这导致了其他错误,即表达式树中不允许动态。
哈克:
如果我将功能更改为此,我可以使它工作:
public static IPagedResponse<T> GetPagedResponse<T, TAnon>(
this IQueryable<TAnon> query,
QueryableRequestMessage request,
T typeSample)
where T : class
{
//...
}
然后传入一个实例T
var result = query.GetPagedResponse(request, new SomeClassOfT());
这样,我可以使用类型推断来确定匿名类型TAnon
,并且在调用泛型时不需要显式(<types>
不需要)。
但是,我不想这样做,因为显然不清楚我在做什么。