Declarando dinámicamente Func <in T, out Result>
Considera esto:
var propertyinfo = typeof(Customer).GetProperty(sortExpressionStr);
Type orderType = propertyinfo.PropertyType;
ahora quiero declarar
Func<int,orderType>
Sé que no es posible directamente desdeordertype
está en tiempo de ejecución pero ¿hay alguna solución?
Esto es exactamente lo que quiero hacer:
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));
todo esto porque quiero convertir:
Expression<Func<T,object>> to Expression<Func<T,orderType>>
o si no es posible, entonces quiero crearlo desde el primer lugar con el tipo correcto, el caso es el siguiente:
Estoy dentro de un método que tiene untype(Customer)
y un nombre de propiedad de ese tipo que quiero ordenar por él, quiero crear un árbol de expresión de clasificación para pasarloOrderby
(aquí).