活动关系验证

本主题适用于 Windows Workflow Foundation 4。

此示例由以下三个活动组成:CreateCityCreateStateCreateCountryCreateCity 必须在 CreateState 活动内,并且 CreateState 必须在 CreateCountry 活动内。此示例出于演示的需要,对 CreateState 活动使用代码形式的验证逻辑,而对 CreateCity 活动使用 XAML 形式的验证逻辑。这两个约束具有相同的行为。

.NET Framework 版本 4 提供了以下三个帮助器活动,开发人员可使用它们验证各活动之间的关系。

  • GetParentChain
    提供属于当前节点的父级的所有工作流元素的集合
  • GetChildSubtree
    提供属于当前节点的子树(不包括当前节点)的所有工作流元素的集合
  • GetWorkflowTree
    提供当前节点所在的同一树中的所有工作流元素的集合

在此示例中,ForEach 活动用于遍历 GetParentChain 返回的集合。对于集合中的每个元素,都会将其类型与 CreateCountry 进行比较(如果验证的是 CreateCity,则与 CreateState 进行比较),一旦发现匹配项,则会将结果标志设置为 true。最后,AssertValidation 用于在结果标志设置为 false 时生成验证错误。

使用此示例

  1. 在 Visual Studio 2010 中打开 ContainmentValidation.sln 示例解决方案。

  2. 生成解决方案。

  3. 按 Ctrl + F5 启动程序。

Ee622980.Important(zh-cn,VS.100).gif 注意:
您的计算机上可能已安装这些示例。在继续操作之前,请先检查以下(默认)目录:

<安装驱动器>:\WF_WCF_Samples

如果此目录不存在,请访问针对 .NET Framework 4 的 Windows Communication Foundation (WCF) 和 Windows Workflow Foundation (WF) 示例(可能为英文网页),下载所有 Windows Communication Foundation (WCF) 和 WF 示例。此示例位于以下目录:

<安装驱动器>:\WF_WCF_Samples\WF\Basic\Validation\ActivityRelationships