Ich habe eine Methode, die Ausdruck Expression<Func<TFoo, string>> exp
ausnimmt.Verschmelzen zwei Ausdrücke des gleichen Typs (ohne bool)
kann ich einzelnen Ausdruck wie diese
MyMethod(o => o.SomeStringProperty);
Aber jetzt will passieren i Ausdrücke kombinieren (von zwei String-Objekten) und
Jedes zweites Beispiel, das ich von Expression<Func<Foo, bool>>
ist gefunden in dieser Methode übergibt.
Ich versuchte
Expression<Func<TFoo, string>> fn1 = x => x.SomeStringProperty1;
Expression<Func<TFoo, string>> fn2 = x => x.SomeStringProperty2;
var body = Expression.Coalesce(fn1.Body, fn2.Body);
var lambda = Expression.Lambda<Func<TFoo, string>>(body, fn1.Parameters[0]);
aber fast jede Funktion von Expression wirft Ausnahme. Wie macht man das kombinieren?
Was meinst du mit „kombinieren“ zwei Ausdrücke? In Ihrem Beispiel rufen Sie nur eine Methode mit zwei Argumenten auf. –
@IvanStoev: Meine Frage aktualisiert –