2008-12-04 3 views
6

Ich habe vor kurzem ein dynamisches Abfragewerkzeug geschrieben, das Ausdrucksbäume verwendet, und als ich ging, begann die Kraft der Ausdrucksbäume auf mir zu dämmern. Mein Abfragetool könnte auch die Grundlage für ein Reporting-Tool, eine dynamische Entscheidungs-Engine und möglicherweise andere Fälle sein, in denen Sie mit abstrakten Objekten auf abstrakte Weise arbeiten müssen.Ausdrucksbäume in .NET - Bibliotheken?

Der Prozess war schmerzhaft (rekursive Aufrufe an generische Methoden durch Reflektion - ugh), also frage ich mich, ob jemand eine generische Bibliothek erstellt hat, die die Kraft der Ausdrucksbäume nutzen könnte, um einige dieser Aufgaben zu erledigen? Ich habe gesehen PredicateBuilder, aber kennt jemand andere?

Antwort

0

Haben Sie sich LINQ und die IQueryable-Schnittstelle angesehen? So haben sie LINQ to SQL, etc. implementiert.

1

Haben Sie sich das DLR? Ich weiß nicht viel darüber im Detail, aber mein Verständnis ist, dass der Ausdruck-Baum-Mechanismus, der hinter den Kulissen von Linq-to-SQL steht, effektiv im DLR veröffentlicht wurde.

+0

Nein, das stimmt nicht. Es sieht ähnlich aus, aber das DLR ist bei weitem unterlegen. – leppie

+0

DLR-Bäume haben eine Menge Gemeinsamkeiten mit Expression, und IIRC sind in .NET 4.0 CTP etwas mehr zusammengeführt. –

1

NJection ist eine Bibliothek, die Code-Injection durch Konfigurationsdateien behandelt.
NJection.LambdaConverter ist eine Bibliothek, die Delegaten in Ausdrucksbäume umwandelt.

Verwandte Themen