2012-08-17 55 views
1

实体属性模式用于我们的应用程序结构(即)属性以键值对表示并通过索引器访问。WF规则 - 链接索引器

计划使用工作流规则引擎来配置此结构中的规则。但是在哪里找不到链接机制应用程序示例。如果使用索引器属性,需要知道如何在规则中应用链接?

问候,

Mani.M

+0

链接是什么意思? – 2012-08-20 12:42:44

+0

链接建立了基于属性更新的规则的执行流程。例如。在消费者实体中,如果配置了两个规则。一个计算工资和其他奖金。薪水的计算应该在奖金之前。它将通过链接wrokflow规则引擎的功能来建立。 – user1606558 2012-08-21 09:13:02

+0

只是想为索引器应用相同的。需要知道如何应用它。 – user1606558 2012-08-21 09:14:33

回答

0

那么,你所能做的就是将它添加到RuleSet,这样的方式可以WF正确排序规则之前设定的规则的Priority。您将需要创建自己的RuleSet以使其更容易,下面是您可能想要做的事情的示例。

public class MyRuleSet 
{ 
    // this is the WF rule set 
    private RuleSet ruleSet = new RuleSet(); 

    private const int maxRuleSetSize = 1000; 

    public void AddRule(Rule rule) 
    { 
     rule.Priority = maxRuleSetSize - (this.ruleSet.Rules.Count + 1); 
     this.ruleSet.Rules.Add(rule); 
    } 
} 

然后,当你准备执行规则,你需要与你的新RuleSet打造RuleSet,使他们在它们被添加的顺序执行。

var ruleSet = new MyRuleSet(); 
ruleSet.AddRule(new Rule1()); 
ruleSet.AddRule(new Rule2()); 
... 

然后你需要执行那个RuleSet

+0

对不起......这是规则优先级的手动设置..通常,对于特定实体,可以随时添加规则,并且用户不知道现有规则。如果在不同的时间添加规则,设置添加规则的优先级不起作用...如果这是解决方案,则不需要在规则引擎中内置链接。它是规则引擎的第四个特征之一...正确答案请... – user1606558 2012-08-21 17:03:03

+0

@ user1606558 - 不幸的是,WF规则引擎工作的方式是线性执行'RuleSet',所以也许答案是它不适用于您。 – 2012-08-21 17:08:05