我正在Compact上使用Linq表达式树(来自db4o/Mainsoft/Mono端口)。由于System.Reflection.Emit不存在,所以我无法将LambdaExpressions编译成委托,出于性能原因,我想这样做。
我想也许我可以把我的表达式树转换成IL,并以这种方式提供缺少的发射功能,但后来我意识到,我要么必须在它上运行一个基于WinCE的ILASM,要么编写我自己的PE头和可解析的元数据。
我更希望能有ILASM。是吗?
发布于 2009-12-17 00:34:32
显然,我可以编译Mono.Cecil以便在Compact下使用,这将允许我发出和加载程序集。
发布于 2009-12-16 08:55:37
如果您想在CF上使用Lambda表达式,则不需要ILASM或System.Reflection.Emit。CF的C#编译器支持Lamba-表达式,但是CF基库没有表达式类。如果为表达式添加具有正确命名类(和已实现类)的程序集引用,则启用Lambda-表达式。
感谢上帝,已经实现了这个程序集( http://evain.net/blog/articles/2008/09/22/linq-expression-trees-on-the-compact-framework )--我在Db4O数据访问和SqlCE with LINQ IQueryableToolkit中使用它,而且它工作得很好。
https://stackoverflow.com/questions/1913225
复制相似问题