C#中的规则引擎设计和示例

本文关键字:引擎 规则 | 更新日期: 2023-09-27 17:56:38

我目前正在使用 c# 编写一个 .net 应用程序,想要检查一些规则,并根据规则的通过或失败来执行操作。因此,我希望实现一个通用解决方案,我可以按照良好的 oop 原则重用该解决方案。这让我得出结论,我需要编写一个规则引擎。

我对 c# 有很好的了解,但这是我第一次需要编写规则引擎,因此作为我研究和开发此类引擎的一部分,我正在寻找有关创建此类引擎的任何技巧。还有什么好看的,还有什么可以看的呢?任何 c#/.net 规则引擎应用程序?典型的 3 层架构中的哪一层应该驻留在哪一层?我快速浏览了代码复合体和谷歌代码,但没有一个跳出来!所以一些方向会很棒。

C#中的规则引擎设计和示例

实际上,

.NET 具有一流的规则引擎,旨在与工作流一起使用(因为它的设计目的是),但可以轻松地在工作流之外使用:您应该看到"Windows Workflow Foundation Rules Engine"并检查 System.Workflow.Activities.Rules 命名空间。

学习如何在工作流之外使用规则只需要一点谷歌搜索。

编辑:如果要检查体系结构,这里有两个开源预构建引擎:

  • 恩克斯布雷
  • 用于验证和业务规则的 .NET 应用程序块

构建和实现自己的规则引擎可能是一项非常困难的任务,需要考虑很多事情。 您将面临的最大问题是试图决定触发哪些规则以及何时触发。 如果不对此给予适当的关注可能会导致实现中的性能问题。 我强烈建议专注于业务问题,并为您的主题专家 (SME) 提供定义和维护自己的规则的能力。 有许多好的商业产品可以做到这一点;我多次成功实施的那个是 www.inrule.com。 他们有一套不错的产品,可以帮助解决简单和复杂的问题。 希望这有所帮助。