“相关的本地服务”示例

Download sample

此示例演示如何将相关属性与本地服务一起使用,以便将相关事件引发到工作流实例。 当工作流实例可能在本地服务接口上侦听相同事件的不同实例时,必须在本地服务接口上使用相关属性。

在此示例中,工作流将创建两个任务,然后在这些任务完成时等待(同一本地服务事件)通知。 在这种情况下,当外部代码将事件引发到工作流时,本地服务基础结构必须依赖于所引发事件中的数据(相关值)将事件路由到工作流实例中相应的 HandleExternalEventActivity 活动。

ExternalDataExchangeAttribute 属性是一个必需属性,它指示本地服务参与到与工作流进行数据交换的过程中。

CorrelationParameterAttribute 属性指示:默认情况下,相关值位于接口上所定义的方法和事件中具有指定名称的参数上。 示例中的以下代码演示如何使用 CorrelationParameterAttribute 属性:

[CorrelationParameter("taskId")]
public interface ITaskService

CorrelationInitializerAttribute 属性指示:属性化方法是初始化相关值的方法,因此必须首先出现在工作流中(位于本地服务接口上所定义的其他操作的前面),验证才能成功。 示例中的以下代码演示如何使用 CorrelationInitializerAttribute 属性。

[CorrelationInitializer]
void CreateTask( string taskId, string assignee, string text );

如果必须从除 CorrelationParameterAttribute 属性所指示位置外的其他位置中获取相关值,CorrelationAliasAttribute 属性将覆盖特定方法或事件的 CorrelationParameterAttribute 属性设置。

每创建一项任务,任务服务就会显示一个消息框,通知用户任务已创建。 单击了**“确定”**按钮后,将为对应的任务 ID 引发用以完成任务的事件。 这些属性与 CreateTask 活动上设置的属性相同,因此事件与正确的 TaskCompleted 活动关联。

生成示例

  1. 通过单击**“下载示例”**来下载该示例。

    这会将示例项目提取到本地硬盘。

  2. 单击**“开始”,依次指向“程序”“Microsoft Windows SDK”,然后单击“CMD 外壳”[CMD Shell]**。

  3. 转到示例的源目录。

  4. 在命令提示符处键入 MSBUILD <解决方案文件名>

运行示例

  • 在 SDK 命令提示窗口中,运行 CorrelatedLocalService\bin\debug 文件夹(对于该示例的 VB 版本为 CorrelatedLocalService\bin 文件夹)中的 .exe 文件,该文件夹位于该示例的主文件夹下。

请参见

参考

HandleExternalEventActivity
ExternalDataExchangeAttribute
CorrelationInitializerAttribute
CorrelationParameterAttribute
CorrelationAliasAttribute

其他资源

“简单输入”示例
通信示例

Footer image

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