本主题适用于 Windows Workflow Foundation 4。
Policy4 活动通过使用 WF 3.5 中附带的规则引擎,允许直接在 .NET Framework 版本 4 (WF 4) 的 Windows Workflow Foundation 中使用 .NET Framework 3.5 版 (WF 3.5) 中的 Windows Workflow Foundation RuleSet 对象。通过使用此活动,可以创建和执行 WF 3.5 RuleSet。有关 WF 3.5 规则引擎的更多信息(此信息已作为 Windows Workflow Foundation 的一部分包含),请参见 Windows Workflow Foundation 规则引擎简介。有关将规则迁移到 .NET Framework 4 的 WF 中的更多信息,请参见迁移指南。
![]() |
---|
您的计算机上可能已安装这些示例。在继续操作之前,请先检查以下(默认)目录:
<安装驱动器>:\WF_WCF_Samples
如果此目录不存在,请访问针对 .NET Framework 4 的 Windows Communication Foundation (WCF) 和 Windows Workflow Foundation (WF) 示例(可能为英文网页),下载所有 Windows Communication Foundation (WCF) 和 WF 示例。此示例位于以下目录:
<安装驱动器>:\WF_WCF_Samples\WF\Scenario\ActivityLibrary\Policy4
|
此示例中的项目
项目名称 | 说明 | 主要文件 |
---|---|---|
Policy4 |
包含 Policy4 活动及其 WF 设计器。 |
Policy4.cs:Policy4 活动定义。 PolicyDesigner.xaml:Policy4 活动的自定义设计器。它使用来自 WF 规则引擎的规则编辑器(RuleSetDialog 类(可能为英文网页))。 |
ImperativeCodeClientSample |
一个示例客户端应用程序,此应用程序使用命令性 C# 代码(未使用任何 WF 设计器)来配置和运行使用 Policy4 应用程序的工作流。 |
ApplyDiscount.rules:带有 WF 规则定义的文件。 Order.cs:表示客户订单的类型。规则适用于此类型的对象。 Program.cs:配置和运行具有 Policy4 活动的工作流以将 ApplyDiscount.rules 中定义的规则应用于 Order 对象的实例。 App.config:带有规则文件路径的配置文件。 |
DesignerClientSample |
一个示例客户端应用程序,此应用程序在 WF 设计器中配置和运行使用 Policy4 应用程序的工作流。 |
Sequence1.xaml:使用 Policy4 活动执行规则计算的顺序工作流。 Program.cs:运行 Sequence1.xaml 中定义的工作流的实例。 |
Policy4 活动
Policy4 活动是一个从 NativeActivity 派生的类,它允许工作流执行 WF RuleSets。下面的代码示例是活动的公共 OM 的简化定义。
public class Policy4Activity<TResult>: NativeActivity<TResult>
{
public RuleSet RuleSet
[IsRequired]
public InArgument Input
public OutArgument<ValidationErrorCollection> ValidationErrors
}
属性 | 说明 |
---|---|
RuleSet |
在执行活动时要计算的 .NET Framework 3.5 的 WF RuleSet 类(可能为英文网页)。 |
TargetObject |
对其计算 RuleSet 类(可能为英文网页)中的规则的对象。 |
ValidationError |
在执行之前对目标对象验证 RuleSet 类(可能为英文网页)时由 .NET Framework 3.5 的 WF 规则引擎返回的验证错误的列表。 |
Policy4 活动设计器
Policy4 设计器增加了一项功能,利用此功能,无需编写代码即可配置 Policy4 活动。生成解决方案之后,可以在工具箱中的**“Microsoft.Samples.Activities.Rules”**部分找到此功能。
利用 WF 设计器可配置目标对象和 RuleSet。单击**“编辑 RuleSet”**按钮时,将显示 .NET Framework 3.5 的 WF RuleSetDialog 类(可能为英文网页)。此对话框是重新承载的 .NET Framework 3.5 规则编辑器。使用该编辑器可创建和编辑 Policy4 活动执行的规则。
使用此示例
无需进行特殊设置即可运行此示例。只需在 Visual Studio 中打开解决方案,然后按 F5 即可运行应用程序。
此示例包含两个客户端应用程序,即 ImperativeCodeClientSample 和 DesignerClientSample。ImperativeCodeClientSample 客户端演示如何使用 C# 命令性代码来配置和运行 Policy4 活动。DesignerClientSample 演示如何使用设计器配置和运行 Policy4 活动。
运行 ImperativeCodeClientSample 客户端应用程序
使用 Visual Studio 2010 打开 Policy4Sample.sln 解决方案文件。
在**“解决方案资源管理器”中,右击“ImperativeCodeClientSample”项目,然后选择“设为启动项目”**。
若要运行项目,请按 Ctrl+F5。
运行 ImperativeCodeClientSample 客户端应用程序
使用 Visual Studio 2010 打开 Policy4Sample.sln 解决方案文件。
在**“解决方案资源管理器”中,右击“DesignerClientSample”**项目。
- 选择**“设为启动项目”**。
若要编译项目,请按 F6。
若要运行项目,请按 Ctrl+F5。