使用 PolicyActivity 活动
您可以使用 PolicyActivity 活动表示规则集合。 规则由条件和引起的操作组成。 可以将规则视为 IF-THEN-ELSE 语句,其中,条件对应于 IF,而操作定义 THEN 和 ELSE 子句的行为。
操作可以执行以下任务:
设置工作流上的字段或属性。
调用工作流上或工作流中的对象上的方法。
调用被引用程序集中的类型上的静态方法。
执行 Halt 或 Update 语句。
规则集条件和操作
您可以为规则集条件以及 Then 和 Else 操作创建表达式。 有关条件的更多信息,请参见在工作流中使用条件。
条件和操作支持相同的表达式运算符,区别是在条件中“=”运算符用于赋值而不是判断相等性。
Halt 和 Update
在用于操作的表达式中还可以使用 Halt 和 Update 函数。 Halt 操作会导致立即停止规则集的执行,并将控制权返回给调用代码。 Update 函数与正向链接一起使用。 有关如何将 Update 与正向链接一起使用的更多信息,请参见本主题后面的“使用正向链接”一节。
PolicyActivity 和 RuleSet 类
若要在工作流中使用 PolicyActivity 活动,请将 PolicyActivity 类添加到工作流代码中。 然后配置 PolicyActivity 上的 RuleSetReference 属性,按名称指向 RuleSetCollection 中的 RuleSet。 PolicyActivity 活动创建 RuleSet 类的实例;规则是由 RuleSet 类执行的。 PolicyActivity 活动包含规则所操作的属性。 当规则条件的计算结果为 true 时,将执行该规则的 Then 操作。 当条件的计算结果为 false 时,将执行 Else 操作。
每个规则都有一个 Priority 属性,该属性控制计算规则和执行其操作的顺序。 Windows Workflow Foundation 规则计算器逐条计算规则,并根据规则条件的计算结果执行该规则的操作。 较高优先级的规则在较低优先级的规则之前执行;优先级相同的规则按照规则名称的字母顺序执行。 优先级可以为正,也可以为负。 规则的默认优先级为 0。 有关 RuleSet 中的规则优先级的更多信息,请参见规则集中的规则计算和根据优先级执行 RuleSet。
每个规则都有一个 Rule Active 属性,该属性决定是否应计算该规则。
请参见
参考
PolicyActivity
Rule
RuleSet
RuleSetCollection
RuleAttributeTarget
RuleReadAttribute
RuleWriteAttribute
RuleInvokeAttribute
概念
如何:在工作流中使用规则条件
根据优先级执行 RuleSet
“规则和条件”概述
其他资源
Simple Policy Sample
Advanced Policy Sample
教程:使用规则和条件
Windows Workflow Foundation 活动
版权所有 (C) 2007 Microsoft Corporation。保留所有权利。