Подумайте об этом:
var propertyinfo = typeof(Customer).GetProperty(sortExpressionStr);
Type orderType = propertyinfo.PropertyType;
теперь я хочу объявить
Func<int,orderType>
Я знаю, что это невозможно напрямую, поскольку ordertype
является во время выполнения, но есть ли обходной путь?
это именно то, что я хочу сделать:
var propertyinfo = typeof(T).GetProperty(sortExpressionStr);
Type orderType = propertyinfo.PropertyType;
var param = Expression.Parameter(typeof(T), "x");
var sortExpression = (Expression.Lambda<Func<T, orderType>>
(Expression.Convert(Expression.Property(param, sortExpressionStr), typeof(orderType)), param));
все это, потому что я хочу преобразовать:
Expression<Func<T,object>> to Expression<Func<T,orderType>>
или, если это невозможно, я хочу создать его с самого начала с правильным типом случай выглядит следующим образом:
Я нахожусь внутри метода, который имеет тип (Клиент)
и имя свойства этого типа. Я хочу упорядочить по нему, я хочу создайте дерево выражений сортировки, чтобы передать его Orderby
(здесь).