![](https://i-blog.csdnimg.cn/blog_migrate/704ed77f6f15ba934a9238a07eb71b64.png)
- 将规则载入流引挚
- 设置规则文件里用到的一些变量
- 执行规则,并保存执行结果在上下文中(Context)
规则文件是通过xml来定义的,规则文件主要包含以下这三部分
- rules
- logic tests
- structure
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
//
前提是CurrentOrder作为一个类的实例已经被增加到上下文中,当然,这里是弱类型的
object
QuantityOrdered
=
CurrentOrder.QuantityOrdered;
逻辑块
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
流引挚的实现中基本上都合理的定义和使用接口,看看这几个比较重要的接口
![](https://i-blog.csdnimg.cn/blog_migrate/6fdc034a277ae066ec59019fcbe201da.jpeg)
Process方法,不用说了,最重要的,执行规则的开关
RuleContext属性,就更不用说了,规则定义文件的所有变量,以及引用到的外部变量,甚至是执行结果都存放在这里
![](https://i-blog.csdnimg.cn/blog_migrate/8f401182a5bc1298dcbccabd175d8902.png)
命名空间 NxBRE.FlowEngine.Rules | 描述 |
Decrement* | 自减整数 |
Exception | 抛出异常 |
False,True | |
FatalException | 重大异常 |
Increment | 自增整数 |
IncrementInit* | Incrementor or Decrementor reset. |
ObjectLookup | 通过反射映射到ruleContext中的类或者实例 |
Value | 任何类型的变量 |
哎,这个表格真是不好整啊,凑合着吧,虽然是丑了点,不过符合自己的美工表现...
![](https://i-blog.csdnimg.cn/blog_migrate/6f0dcf55383a85ee6441d4bc82e204af.png)
上面这些就不用注释了,看字面都知道是什么意思了,强调一下,正则表达式的支持,将给扩展留下巨大的空间
![](https://i-blog.csdnimg.cn/blog_migrate/138a10579d5ba4ae27e65b9a96968c22.png)
载入规则文件的时候要用到这些东东,比如xbre文件就要用到XBusinessRulesFileDriver
![](https://i-blog.csdnimg.cn/blog_migrate/2af96a03684693f5eff710f8dde17d59.png)
工厂,创建IFlowEngine实例
好了,说了一堆,看起来好像没什么用...
来个HelloWorld,至少让我知道这是个什么东西