让用户从 GUI 向导构建动态表达式

发布于 2024-11-09 03:29:11 字数 806 浏览 4 评论 0原文

我想构建一个 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

温柔女人霸气范 2024-11-16 03:29:11

检查 LINQKit 项目尤其是 PredicateBuilder 类。

Check LINQKit project especially PredicateBuilder class.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文