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).

questionAnswers(6)

yourAnswerToTheQuestion