Compact Framework中缺少表达式树已经困扰了我一段时间了,但我并没有真正寻找解决方案。
今天,我发现了一篇关于在Mono System.Core之上构建的替代System.Linq.Expressions的博客文章。通过db4o(你可以找到它here)。
我的问题是 - 你使用过这个库吗?如果有的话,你对它的体验是什么(特别是关于性能)?
答案 0 :(得分:2)
这并不直接回答您的问题,但您可能会发现它很有趣。 IronPython和IronRuby附带了System.Linq.Expressions的.NET 4.0实现的源代码。他们还为Linq / DLR表达树提供翻译。 Tomáš Matoušek能够使用此解释器使IronRuby在Windows Phone模拟器上运行。
答案 1 :(得分:2)
对于LINQ to db4o,System.Linq.Expressions运行良好。它可能不会是Compact Framework应用程序查询非LINQ到对象源的瓶颈。
如果你只是用它来做一些元编程,一遍又一遍地使用Compile,它的表现就不如桌面,因为它基本上是一个基于反射的解释器。对于它的价值,解释器通过表达树的完整Mono测试套件(这是相当的结果)。
唯一知道它的错误与a missing feature of the Compact Framework BCL有关,因此当涉及通用字段时,csc无法发出正确的表达式树。