Ich habe eine Methode, mit der ich eine Liste sortieren kann:
%Vor%Ich bekomme eine Ausnahme, wenn ich den Code mit den folgenden Argumenten ausführe:
%Vor%Die Ausnahme ist:
%Vor%Kann jemand sehen, was ich hier vermisse?
BEARBEITEN:
Ich habe eine weitere Überladung von Expression.Call () versucht und dieselbe Ausnahme erhalten:
%Vor% Da der Eigenschaftsauswahlausdruck die entsprechenden Aufrufe dynamisch ausführen soll, müssen Sie einen neuen Ausdruck dafür erstellen. Sie können den bereitgestellten Selektor nicht verwenden, da er aktuell Expression<Func<T, object>>
eingegeben wurde und nicht den spezifischen Typ Expression<Func<T, SomeType>>
zurückgibt. Sie können es möglicherweise kompilieren, indem Sie die Typargumente des Aufrufs ändern, um object
zu akzeptieren, aber es wird nicht wie erwartet funktionieren, da es Objektreferenzvergleiche durchführt (und Ihr LINQ-Provider wird es möglicherweise trotzdem ablehnen) / p>
Um den Selektorausdruck neu zu erstellen, können Sie Folgendes tun:
%Vor%Eine gute Alternative dazu wäre, den Eigenschaftstyp auch generisch zu machen. Auf diese Weise erhalten Sie von Anfang an einen entsprechend stark typisierten Selektor.
%Vor%Tags und Links c# linq expression-trees