“相关的本地服务”示例
此示例演示如何将相关属性与本地服务一起使用,以便将相关事件引发到工作流实例。 当工作流实例可能在本地服务接口上侦听相同事件的不同实例时,必须在本地服务接口上使用相关属性。
在此示例中,工作流将创建两个任务,然后在这些任务完成时等待(同一本地服务事件)通知。 在这种情况下,当外部代码将事件引发到工作流时,本地服务基础结构必须依赖于所引发事件中的数据(相关值)将事件路由到工作流实例中相应的 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 活动关联。
生成示例
通过单击**“下载示例”**来下载该示例。
这会将示例项目提取到本地硬盘。
单击**“开始”,依次指向“程序”和“Microsoft Windows SDK”,然后单击“CMD 外壳”[CMD Shell]**。
转到示例的源目录。
在命令提示符处键入 MSBUILD <解决方案文件名>。
运行示例
- 在 SDK 命令提示窗口中,运行 CorrelatedLocalService\bin\debug 文件夹(对于该示例的 VB 版本为 CorrelatedLocalService\bin 文件夹)中的 .exe 文件,该文件夹位于该示例的主文件夹下。
请参见
参考
HandleExternalEventActivity
ExternalDataExchangeAttribute
CorrelationInitializerAttribute
CorrelationParameterAttribute
CorrelationAliasAttribute
其他资源
版权所有 (C) 2007 Microsoft Corporation。保留所有权利。