首页 > 其他分享 >规则引擎

规则引擎

时间:2022-10-18 14:15:28浏览次数:36  
标签:item Score RulesEngine 引擎 规则 var

查看代码

//定义规则
using Newtonsoft.Json;
using RulesEngine.Models;

//模拟用户的输入内容
var inputValue = new InputValue
{
    Score = 60
};

var rulesStr = @"[{
                    ""WorkflowName"": ""InputValueWorkflow"",
                    ""Rules"": [
                      {
                        ""RuleName"": ""11"",
                        ""ErrorMessage"": ""考试及格."",
                        ""ErrorType"": ""Error"",
                        ""RuleExpressionType"": ""LambdaExpression"",
                        ""Expression"": ""Score >=60""
                      },
                       {
                        ""RuleName"": ""22"",
                        ""ErrorMessage"": ""考试不及格"",
                         ""ErrorType"": ""Error"",
                        ""RuleExpressionType"": ""LambdaExpression"",
                        ""Expression"": ""Score<60""
                      }
                    ]
                  }] ";

//反序列化Json格式规则字符串
var workflowRules = JsonConvert.DeserializeObject<List<WorkflowRules>>(rulesStr);

//初始化规则引擎
var rulesEngine = new RulesEngine.RulesEngine(workflowRules.ToArray());

//使用规则进行判断,并返回结果
List<RuleResultTree> resultList = await rulesEngine.ExecuteAllRulesAsync("InputValueWorkflow", inputValue);

//返回结果并展示
foreach (var item in resultList)
{
    Console.WriteLine("验证成功:{0},消息:{1}", item.IsSuccess, item.ExceptionMessage);
}

//Console.ReadLine();

public class InputValue
{
    public double Score { get; set; }
}

标签:item,Score,RulesEngine,引擎,规则,var
From: https://www.cnblogs.com/xinzhyu/p/16802351.html

相关文章

  • [答疑]计算价钱“规则很复杂”的责任分配
    Alan2020-6-210:01在并多的案例中,计算价钱由拼单子订单完成,拼单子订单有数量,就能计算价格,实际上计算价格影响的因子比较多,比如价格,2件以上再打9.5折,顾客类型(高级会员),在......
  • 规则引擎深度对比,LiteFlow vs Drools!
    前言Drools是一款老牌的java规则引擎框架,早在十几年前,我刚工作的时候,曾在一家第三方支付企业工作。在核心的支付路由层面我记得就是用Drools来做的。难能可贵的是,Drools......
  • 【LeetCode】1773. 统计匹配检索规则的物品数量(C++)
    1773.统计匹配检索规则的物品数量(C++)​​1题目描述​​​​2示例描述​​​​2.1示例1​​​​2.2示例2​​​​3解题提示​​​​4解题思路​​​​5源码详解(C++)​......
  • NDB和InnoDB存储引擎之间的差异
    ​该​​NDB​​存储引擎采用分布式,无共享架构,这会导致它从行为不同的方式实现 ​​InnoDB​​在多种方式。对于那些不习惯使用的人来说 ​​NDB​​,由于其在交易,外键,表格......
  • Python缩进规则(包含快捷键)
    和其它程序设计语言(如 Java、C语言)采用大括号“{}”分隔代码块不同,Python 采用代码缩进和冒号(:)来区分代码块之间的层次。在Python中,对于类定义、函数定义、流程控制......
  • ShardingSphere的路由引擎类型
    ShardingSphere的路由引擎类型本篇文章源码基于4.0.1版本上篇文章我们了解到了ShardingSphere在路由流程过程中,根据不同类型的SQL会现在不同的路由引擎,而ShardingSphere......
  • win11扯蛋的防火墙:远程桌面默认只添加了UDP端口规则
    win11扯蛋的防火墙:远程桌面默认只添加了UDP端口规则。开启防火墙后,导致win10以下的mstsc客户端无法访问。解决办法就是在防火墙高级设置,添加远程桌面端口(默认3389)的TCP......
  • thymeleaf模板引擎,公共代码片段
        Expressionvaria钩去掉  集成 配置                                 ......
  • 全文搜索引擎Solr原理和实战教程
    Solr简介1.Solr是什么?Solr它是一种开放源码的、基于LuceneJava的搜索服务器,易于加入到Web应用程序中。Solr提供了层面搜索(就是统计)、命中醒目显示并且支持多......
  • Kubernetes Traefik 路由规则及中间件 Traefik Middlewares 的配置 (k3s)
    系统环境:  Traefik版本:v2.2.0Kubernetes版本:K3s1.23.6一、什么是TraefikTraefik是一款开源的边缘路由器,现在本人主要要作用于kubernetes中对外的网关,即Ingress路......