Деревья выражений Linq в Compact Framework - PullRequest
10 голосов
/ 10 июня 2010

Отсутствие деревьев выражений в Compact Framework уже давно беспокоит меня, но я действительно не искал решения.

Сегодня я нашел сообщение в блоге об альтернативном System.Linq.Expressions, построенном поверх Mono System.Core и используемом, например, db4o (его можно найти здесь ).

Мой вопрос: использовали ли вы эту библиотеку, и если да, то какой у вас был опыт (особенно в отношении производительности)?

Ответы [ 2 ]

2 голосов
/ 09 июля 2010

Для LINQ to db4o System.Linq.Expressions работает довольно хорошо.Вероятно, это не будет узким местом приложения Compact Framework, запрашивающего не LINQ к источнику объектов.

Если вы просто используете его для выполнения некоторого метапрограммирования, многократно используя Compile, оно выиграетне так хорошо, как на рабочем столе, так как это интерпретатор, основанный на отражениях.Что бы это ни стоило, интерпретатор проходит полный набор тестов Mono для деревьев выражений (это довольно важно).

Единственная известная ошибка с ним связана с отсутствующей функцией Compact Framework BCL * 1006.*, что делает невозможным для csc испускать правильное дерево выражений, когда задействованы общие поля.

2 голосов
/ 13 июня 2010

Это не дает прямого ответа на ваш вопрос, но может показаться вам интересным. IronPython и IronRuby поставляются с исходным кодом для реализации .NET 4.0 System.Linq.Expressions.У них также есть переводчик для деревьев выражений Linq / DLR. Томаш Матушек смог заставить IronRuby работать на эмуляторе Windows Phone с помощью этого интерпретатора.

...