Declarando Func <em T, sem resultado> dinamicamente
Considere isto:
var propertyinfo = typeof(Customer).GetProperty(sortExpressionStr);
Type orderType = propertyinfo.PropertyType;
agora eu quero declarar
Func<int,orderType>
Eu sei que não é possível diretamente desdeordertype
está em tempo de execução, mas existe alguma solução alternativa?
isto é exatamente o que eu quero fazer:
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));
tudo isso porque eu quero converter:
Expression<Func<T,object>> to Expression<Func<T,orderType>>
ou, se não for possível, quero criá-lo desde o primeiro lugar com o tipo certo, o caso é o seguinte:
Estou dentro de um método que tem umtype(Customer)
e um nome de propriedade desse tipo que desejo ordenar por ele, quero criar uma árvore de expressão de classificação para a qual passarOrderby
(aqui).