3
Я хочу построить следующее выражение:Преобразование LambdaExpression в машинописные Expression <Func <T, object>> с возвращением бокс значения
Expression<Func<T, object>>
У меня в настоящее время следующий код:
public class Strategy<T>
{
private static Expression<Func<T, object>> GetIt(PropertyInfo propertyInfo)
{
ParameterExpression parameter = Expression.Parameter(typeof(T));
MemberExpression property = Expression.Property(parameter, propertyInfo);
Type funcType = typeof(Func<,>).MakeGenericType(typeof(T), typeof(object));
//next line fails: can't convert int to object
LambdaExpression lambda = Expression.Lambda(funcType, property, parameter);
Expression<Func<T, object>> retval = (Expression<Func<T, object>>)lambda;
return retval;
}
}
Мой объект PropertyInfo имеет возвращаемый тип "int". Как я могу использовать бокс в своем выражении?
'Выражение> RetVal = Expression.Lambda > (Expression.Convert (свойство, TypeOf (объект)), параметр);' –
PetSerAl