Frage

Ich arbeite mit Linq Ausdruck Bäumen (von der db4o / Mainsoft / Mono-Port) auf dem Compact-Framework. Da System.Reflection.Emit nicht vorhanden ist, kann ich nicht meine LambdaExpressions in Delegierten zusammenstellen, die ich aus Performance-Gründen tun will.

Ich dachte, vielleicht könnte ich meine Ausdrucksbaum in IL-Transformation und bieten grundsätzlich die fehlende Emit Funktionalität auf diese Weise, aber dann merkte ich, dass ich haben, würde entweder eine WinCE-basierten ILASM darauf laufen oder meine eigene PE-Header schreiben und assmebly Metadaten.

Ich würde viel lieber ILASM zur Verfügung. Ist es?

War es hilfreich?

Lösung

Anscheinend kann ich Mono.Cecil für den Einsatz unter dem Rahmen Compact, wird die gestatten Sie mir zu emittieren und Last Baugruppen.

Andere Tipps

Wenn Sie eine Lambda-Ausdrücke verwenden möchten auf CF Sie nicht ILASM oder System.Reflection.Emit benötigen. Der C # Compiler für CF unterstützt Lamba-Expressions aber die CF Basisbibliotheken nicht die Ausdrücke Klassen haben. Wenn Sie Bezug auf die Montage mit richtigen Namen (und korrekt implementiert) Klassen für Ausdrücke hinzufügen, können Sie Lambda-Ausdrücke.

Danke für Gott gibt es diese Anordnung bereits umgesetzt ( http://evain.net/blog/articles/2008/09/22/linq-expression-trees-on-the-compact-framework ) - ich benutze es mit dB4O Datenzugriff und für SQLCE wit LINQ IQueryableToolkit, und es funktioniert gut.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top