14
Was ist die korrekte oder robuste Möglichkeit, eine System.Linq.Expressions.Expression
auszuwerten, um einen Wert (Objekt) zu erhalten?So bewerten Sie eine System.Linq.Expressions.Expression
Was ist die korrekte oder robuste Möglichkeit, eine System.Linq.Expressions.Expression
auszuwerten, um einen Wert (Objekt) zu erhalten?So bewerten Sie eine System.Linq.Expressions.Expression
Ich verwende versuchsweise die folgenden, aber nicht wissen, ob es die bevorzugte Methode ist:
public static object Evaluate(Expression e)
{
//A little optimization for constant expressions
if (e.NodeType == ExpressionType.Constant)
return ((ConstantExpression)e).Value;
return Expression.Lambda(e).Compile().DynamicInvoke();
}
Was passiert, wenn der Ausdruck eine parametrisierte Lambda-Ausdruck? – phoog
Gute Frage ... In meinem Anwendungsfall sollte ich niemals einen Lambda-Ausdruck bekommen, parametrisiert oder nicht. (Ich werde einen Scheck dafür hinzufügen.) –