Получите типы свойств универсального типа для использования в выражении.C#

Место общения программистов C#
Anonymous
Получите типы свойств универсального типа для использования в выражении.

Сообщение Anonymous »

У меня есть метод как часть универсального класса для использования в контексте запроса коллекции объектов, где встречается логическое предложение в выражении, а результат упорядочен по некоторому свойству типа объекта. p>
Текущая сигнатура метода:

Код: Выделить всё

Task GetFirstWhere(Expression whereExp, Expression orderByExp)
Пример реализации:

Код: Выделить всё

public async Task GetFirstWhere(Expression whereExp, Expression orderByExp) {
return await _entities.Where(whereExp)
.OrderByDescending(orderByExp)  // I would like to use any valid orderByExp type here
.FirstOrDefaultAsync();
}
Для использования в таких сценариях, как:

Код: Выделить всё

var foundArticleTag = await _tags.GetFirstWhere(
tag => tag.Name == articleTag,
tag => tag.CreatedOn);
Я бы хотел, чтобы функция orderByExp использовала любой допустимый тип свойства T, а не явно DateTime. Я бы предпочел не делать тип динамическим, чтобы можно было использовать только допустимые типы свойств T. Я предполагаю, что для этого необходимо отражение, хотя я не уверен, как обеспечить соблюдение ограничения типа.


Подробнее здесь: https://stackoverflow.com/questions/626 ... expression

Вернуться в «C#»