Pregunta

Estoy trabajando con árboles de expresión Linq (desde el puerto db4o/Mainsoft/Mono) en Compact Framework.Como System.Reflection.Emit no existe, no puedo compilar mis LambdaExpressions en delegados, lo cual quiero hacer por razones de rendimiento.

Pensé que tal vez podría transformar mi árbol de expresión en IL y básicamente proporcionar la funcionalidad Emit que faltaba de esa manera, pero luego me di cuenta de que tendría que ejecutar un ILASM basado en WinCE o escribir mis propios encabezados PE y metadatos de ensamblaje.

Preferiría tener ILASM disponible. ¿Lo es?

¿Fue útil?

Solución

Al parecer, puedo compilar Mono.Cecil para su uso bajo el Compact Framework, que se me permite emitir y conjuntos de carga.

Otros consejos

Si desea utilizar un Expresiones Lambda-CF en que no es necesario ILASM o System.Reflection.Emit. El compilador de C # para CF apoya Lamba-expresiones, pero las bibliotecas de base CF no tiene las clases de expresiones. Si se agrega referencia a la asamblea con el nombre correcto (y corregir) implementado clases de expresiones, se habilita Lambda-expresiones.

Gracias por dios, hay este montaje ya implementada ( http://evain.net/blog/articles/2008/09/22/linq-expression-trees-on-the-compact-framework ) - yo lo uso con db4o acceso a datos y para SQLCE ingenio LINQ IQueryableToolkit, y funciona bien.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top