Question

Je souhaite créer l'expression lambda fournissant le nom de la propriété, une valeur (comme chaîne) et le type de propriété (comme type).

Le problème avec cela est en ligne Expression.Constant(value1, propertyType);
Value1 qui est transmise à FOO est une chaîne. et doit être analysé à un type "inconnu"

static Expression<Func<T, bool>> LabmdaExpression<T>(string property1, string value1, 
                                                     Type propertyType)
{                              
    var parameterExpression = Expression.Parameter(typeof(TheObject), "o");
    var memberExpression1 = Expression.PropertyOrField(parameterExpression, property1);

    //casting?
    var valueExpression1 = Expression.Constant(value1, propertyType);

    var binaryExpression1 = Expression.GreaterThan(memberExpression1, valueExpression1);
    return Expression.Lambda<Func<T, bool>>(binaryExpression1, parameterExpression);
}

Pas de solution correcte

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top