基于 Json 的规则引擎,具有广泛的动态表达式支持,是一个库/NuGet 包,用于从系统中抽象出业务逻辑/规则/策略。它提供了一种简单的方法,使您能够将规则放在系统核心逻辑之外的存储中,从而确保规则的任何更改都不会影响核心系统。
您需要根据给定的架构定义存储规则,并且它们可以存储在任何认为合适的存储中,例如 Azure Blob 存储、Cosmos DB、Azure 应用程序配置、实体框架、SQL Server、文件系统等。对于 RuleExpressionType LamdaExpression,规则写成lambda 表达式。
[ { "WorkflowName": "Discount", "Rules": [ { "RuleName": "GiveDiscount10", "SuccessEvent": "10", "ErrorMessage": "One or more adjust rules failed.", "ErrorType": "Error", "RuleExpressionType": "LambdaExpression", "Expression": "input1.country == \"india\" AND input1.loyaltyFactor <= 2 AND input1.totalPurchasesToDate >= 5000" }, { "RuleName": "GiveDiscount20", "SuccessEvent": "20", "ErrorMessage": "One or more adjust rules failed.", "ErrorType": "Error", "RuleExpressionType": "LambdaExpression", "Expression": "input1.country == \"india\" AND input1.loyaltyFactor >= 3 AND input1.totalPurchasesToDate >= 10000" } ] } ]
|
使用以下代码启动实例将规则注入规则引擎 :
var rulesEngine = new RulesEngine(workflow, logger);