WF Rules值得注意的问题:引用的判断和死循环

  • 在WF的环境下很容易造成死循环,因为根据forward-channing的推理原则,一条rule自己可以触发自己,在这种情况下 造成了死循环:IF this.disCount == 10 THEN this.disCount = 10  这条语句将很容易造成死循环。另外在两个或者 多个Rules的情况下也容易造成死循环:
         R1 :  IF this.Name != "headchen" THEN this.disCount = 10
         R2 :  IF this.disCount == 10 THEN this.Name = "minnie"
  • WF对对象属性引用的判断仅仅局限于属性本身,对于数组,字典等集合属性,当一个改变,则会认为整体性的改变,从而 触发相关的规则,而不理会另外的调用参数。比如:有一个属性Dictionary 类型的属性,不管某个Action触发了其中任何一项,WF都认为是这个Dictionary属性整个发生了改变而不进行分辨是哪一项,对于数组也是一样。

你可能感兴趣的:(Rule)