我有一个搜索工具,它接受复杂的搜索字符串(实际上是 JSON 中的 n 级对象图)并返回一些结果。我想通过类似 LINQ 的机制向其他(内部)开发人员公开该功能。
假设每个结果都是由一个类定义的Result
我可以创建类似以下的方法:
Function Search(Expression As Linq.Expression(Of System.Func(Of Result, Boolean))) As IEnumerable(Of Result)
我不清楚的是我怎样才能走那条路Expression
参数并提取实际标准,然后我可以将其形成到对象图中以运行查询。
有人可以向我指出如何实现这一目标的教程/示例吗?
对于一点背景知识,我已经设法深入研究表达式以获得递归结构,并且能够检查.Body
的 lambda 表达式,但是当我想要处理Left
and Right
例如类型的节点的属性ExpressionType.Or
,我遇到了问题。调试器正在使用 Friend 范围的类(BinaryExpressionProxy
)来检查我无法使用的表达式,因此我显然走错了路。
您可能想看看子类化班级。这提供了遍历表达式树的机制,您可以重写处理每种类型节点的方法。
以下是您可能会发现有用的其他一些链接:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)