- 将规则载入流引挚
- 设置规则文件里用到的一些变量
- 执行规则,并保存执行结果在上下文中(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/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/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
流引挚的实现中基本上都合理的定义和使用接口,看看这几个比较重要的接口
Process方法,不用说了,最重要的,执行规则的开关
RuleContext属性,就更不用说了,规则定义文件的所有变量,以及引用到的外部变量,甚至是执行结果都存放在这里
命名空间 NxBRE.FlowEngine.Rules | 描述 |
Decrement* | 自减整数 |
Exception | 抛出异常 |
False,True | |
FatalException | 重大异常 |
Increment | 自增整数 |
IncrementInit* | Incrementor or Decrementor reset. |
ObjectLookup | 通过反射映射到ruleContext中的类或者实例 |
Value | 任何类型的变量 |
哎,这个表格真是不好整啊,凑合着吧,虽然是丑了点,不过符合自己的美工表现...
上面这些就不用注释了,看字面都知道是什么意思了,强调一下,正则表达式的支持,将给扩展留下巨大的空间
![](https://www.cnblogs.com/images/cnblogs_com/linbc/IRulesDriver.png)
载入规则文件的时候要用到这些东东,比如xbre文件就要用到XBusinessRulesFileDriver
工厂,创建IFlowEngine实例
好了,说了一堆,看起来好像没什么用...
来个HelloWorld,至少让我知道这是个什么东西