让用户从 GUI 向导构建动态表达式
我想构建一个 GUI 面板/向导,我的应用程序的用户可以使用强类型对象模型的属性构建自定义条件/表达式。 基本上是这样的。
结构可以嵌套(LHS/RHS 可能由其他表达式组成)并使用 or/and/foreach 操作数与其他表达式组合。
我希望能够检查每个子表达式的类型和值是否正确。 理想情况下,最终查询应该是 linq 查询或表达式树。
我的目标是让用户设计自己的策略或简单的工作流程。
您建议使用什么类型来处理表达式以及创建动态查询的解决方案?
我正在考虑将表达式表示为字符串,例如
person.DateOfBirth > 1970 年person.Country != Country.Germany
,然后使用动态 LINQ 库 as此处描述。
是否可以创建动态高级表达式或者此解决方案有限制?
您建议什么替代解决方案?
I want to build a gui panel/wizard where my application's users could build custom conditions/expressions using the properties of a strongly typed object model.
Basically something like this.
The structure could be nested (LHS/RHS might consist of other expressions) and combined with other expressions using or/and/foreach operands.
I want to be able to check for correct types and values for each sub-expression.
Ideally the final query should be a linq query or an expression tree.
My goal is to let users design their own strategies or simple workflows.
What type you would suggest for handling the expressions and what solution for creating the dynamic query?
I am thinking representing the expressions as strings e.g.
person.DateOfBirth > 1970 && person.Country != Country.Germany
and then create the linq query using the concatenation as parameter in the extended .Where
clause produced by the Dynamic LINQ library as described here.
Is it possible to create dynamically advanced expression or there are limitations on this solution?
What alternative solutions do you suggest?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
检查 LINQKit 项目尤其是 PredicateBuilder 类。
Check LINQKit project especially PredicateBuilder class.