在哪里可以找到 LinQ 解析器
我想允许我的用户编写和执行 linq 查询。 为此,我需要一个 linq 解析器。该解析器只能理解 linq 表达式,而不是完整的 C# 语言。
因此,举例来说,如果我们有 类订单 { 公共 int 订单 ID; } List list = ...
用户应该能够在 UI 中输入 “在列表中选择 p,其中 p.OrderId > 2”; 这将返回 orderId > 的订单。 2、
存在吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
最快的方法是:
将表达式嵌入到 C# 文件中,该文件将生成一个将查询作为表达式返回的方法>;例如,对于
你可能会发出:
对文件调用 C# 编译器。
作为副产品,您可以进行类型检查和许多其他事情。唯一真正的缺点是您需要很好地了解查询执行的环境;如果你想做的事情之一是了解环境,那么这对你没有多大帮助。
The quickest way to do it is to:
Embed the expression into an C# file that will generate a method that will return the query as Expression>; e.g., for
You might emit:
Invoke the C# compiler on the file.
As a byproduct you get type checking and a bunch of other things. The only real downside is you need a good understanding of the environment in which the query will be executing; if one of the things you're trying to do is to understand the environment, then this doesn't help you very much.
您可以创建自己的 Linq 提供程序,这是MSDN 上的演练
You can create your own Linq providers, here's a walk through on MSDN