使用 PolicyActivity 活动

您可以使用 PolicyActivity 活动表示规则集合。 规则由条件和引起的操作组成。 可以将规则视为 IF-THEN-ELSE 语句,其中,条件对应于 IF,而操作定义 THENELSE 子句的行为。

操作可以执行以下任务:

  • 设置工作流上的字段或属性。

  • 调用工作流上或工作流中的对象上的方法。

  • 调用被引用程序集中的类型上的静态方法。

  • 执行 HaltUpdate 语句。

规则集条件和操作

您可以为规则集条件以及 ThenElse 操作创建表达式。 有关条件的更多信息,请参见在工作流中使用条件

条件和操作支持相同的表达式运算符,区别是在条件中“=”运算符用于赋值而不是判断相等性。

Halt 和 Update

在用于操作的表达式中还可以使用 HaltUpdate 函数。 Halt 操作会导致立即停止规则集的执行,并将控制权返回给调用代码。 Update 函数与正向链接一起使用。 有关如何将 Update 与正向链接一起使用的更多信息,请参见本主题后面的“使用正向链接”一节。

PolicyActivity 和 RuleSet 类

若要在工作流中使用 PolicyActivity 活动,请将 PolicyActivity 类添加到工作流代码中。 然后配置 PolicyActivity 上的 RuleSetReference 属性,按名称指向 RuleSetCollection 中的 RuleSetPolicyActivity 活动创建 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 活动

Footer image

版权所有 (C) 2007 Microsoft Corporation。保留所有权利。