



下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、事件活动相反的调用过程是宿主应用程序触发的事件被工作流捕获进行处理(尽管工作流事件处 理可被用在更广泛的任务中,而不仅仅是和宿主进行通信)。在第八章中,我提到过在对工作 流用来处理事件的活动进行表达后,我们还将重温宿主/工作流之间的通信,在本章中我 们将完成这件事。学习完本章,你将掌握:,使用HondlExtnolEvnt活动创立特定的事件处理程序.在你的工作流中使用DHoy活动.在你的工作流中使用EventDriven活动.在你的工作流中使用Listen活动5JIMEventHandlingScope活动在活动并发执行的情况下是怎样监听事件的在第八章(“调用外部方法和工作流”)中,你看过工作
2、流怎样使用CHExtemcilMMhod 活动来和宿主应用程序进行通信。当工作流调用一个外部方法时,使用一个你提供的本地通信 服务,该宿主应用程序会收到一个事件,然后宿主对数据进行处理并产生一些相应的动作。相反的调用过程是宿主应用程序触发的事件被工作流捕获进行处理(尽管工作流事件处 理可被用在更广泛的任务中,而不仅仅是和宿主进行通信)。在第八章中,我提到过在对工作 流用来处理事件的活动进行表达后,我们还将重温宿主/工作流之间的通信,在本章中我们 将完成这件事。在目前为止的其它章节中,我都是单独地对某个工作流活动进行描述,然后提供一个小应 用程序来演示该活动的操作过程。和这些章节不同,本章将在一
3、个例如应用程序中对多个活动进行 描述和演示。为什么这样做呢?因为我在这里要描述的这些活动都是相互关联互相依赖的。我不 能演示其中一个活动而对其它的活动不进行演示。Listen活动可作为EventDriven活动的容 器。在EventDrivn活动的内部,你还会不出所料找到唯一的一个HondleExterncilEvnt活动等等。因此在本章中我将从始至终只创立一个应用程序来对这些 活动进行描述和演示。“宿主到工作流”这一节是本章的主线。我们首先从 HandleExternalEvent 活动开始。HandleExternalEvent 活动不管在你的工作流中在何处处理事件,也不管你的工作流正处于
4、执行状态时所发现要执行 的是什么样的活动组合,只要当一个事件来到了你的工作流路径当中,HcindlEx怕rncilEvent活动就是最终去处理该事件的工作流活动。对我来说,.N日的强大的 功能特性很多,它的触发和处理事件的能力就是这些最强大的功能中的一个。包括工作流事件 的处理也同样强大。HandleExternalEvent活动的作用是响应一个基于lEventActivity接口的事件,它有三 个主要的成员:QueueNome属性、Subscribe和Unsubscribe方法。QueueNome表示正 等待该事件的工作流队列,而Subscribe和Unsubscribe方法用来把你的事件处
5、理程序将要 接收(或者不将进行接收)的特定事件实例告知工作流运行时。HandleExternalEvent活动本身也可和CcillExternQlMethod活动一起使用(我们在第8 章中看到过)。工作流使用CQllExternolMMhod活动来把数据发送给宿主应用程序,但是 在工作流执行时,工作流使用HcindQExterncilEvnt来接收从宿主中发送过来的数据。备注:牢记:使用外部数据交换的时机并不仅仅是在把数据从你的宿主应用程序发送到工作 流的时候。当你创立你的工作流实例的时候,你可总是为其提供初始数据。但是,一旦工作流 正在执行时,对于直接和你的宿主应用程序进行本地通信来说,它是
6、唯一可使用的机制(当然也 可使用更加间接的方式替代,例如使用FTP协议或者Web服务调用这些手段)。表10-1和表10-2歹U出了使用HondleExtemolEvent活动时经常用到的一些主要的属性 和方法。注意有些方法和属性是所有活动共有的(如在第四章“活动和工作流类型介绍”中表4- 1和表4-2展示的一样)。我在此展示的属性和方法无疑不是所有可使用的属性和方法,但他们却是经常要被用到的。表10-1经常用到的HondleExternolEvnt活动的属性属性功能Correlat ionToke n获取或设置一个到关联标记(correlation token)的绑定。我们将在第17章(关联和
7、本地宿 主通信,z)中处理关联。EventName活动将要处理的事件。注意如果没有对其进行设置,该活动将不会对事件进行监听并且和宿主 通信也就不可能进行。奇怪的是,忽略该属性值你不会收到任何错误验证信息。Interfac eType获取或设置进行通信所要使用的接口类型。该接口必须使用ExternalDataExchange特性进行 装饰(标记)。(你或许可回忆一下第8章,你为GIIExternalMethod方法提供了一个相同的 接口。)表10-2经常用到的HandleExternalEvent活动的方法方 法功能Onl nvok ed这是一个有很用的保护型(protected)方法,它用来把
8、本领件参数中的值和你工作流中的字段或 依赖属性进行绑定。重写该方法(或者处理它所触发的事件)是检索来自于宿主并被保存到事件参 数中的数据一个主要的机制,通常,你会创立一个自定义的事件参数来把数据嵌入进参数对象自身 中。尽管你能直接从Visucd Studio的工具箱中使用HondleExtrncdEvent活动,但更普遍 的情形是使用你在第8章中看过的wcaexe工具来为你正使用的通信接口创立一个派生自 HondleExternolEvent的自定义类。例如,假如在你的接口中定义了一个名称为 SendDotoToHost的事件,wco.exe将会生成一个称作SendDcitciToHost的新
9、活动(它派生 自 HandleExternalEvent),并为你指定了EventNome 和 InterfciceType,而且通过你创立 的事件参数也为你和“ndDotoToHost事件进行了数据绑定。在本章晚些时候我将提供一个例子。使用HandleExternalEvent很容易,只需简单地在你的工作流中放入该活动,指定接口和 事件名。假如你需要的话,还可为Invoked事件提供一个event handler,然后就可执行你的 工作流了。假如你使用wca.exe,就可为你提供一个派生自HandleExternalEvent的活动, 你可直接把它拖拽到你的工作流中,在属性窗口中添加绑定,把事件参数中的数据和一个局部字 段或者依赖属性绑定在一起。在你的工作流中有了HandleExternalEvent活动后,在等待事件发生时所有通过该顺序流 的处理
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 反恐防暴应急预案
- 热液烫伤的急救与护理
- 2025年普洱货运从业资格证考试技巧
- 2025年份次季度二手车交易电子合同区块链存证协议
- (41)-4【苏教】数学基础卷03
- 4.1+公民基本义务(教学课件)-2024-2025学年八年级道德与法治下册高效课堂同步教学课件(统编版)
- 25年3月民宿众筹项目连带责任借款专项协议
- 协议书一式三份
- 二零二五版限制性股权转让协议书
- 二零二五版专利权转让协议参考样本
- 大学校园白蚁防治方法
- 雷雨-剧本原文-高中语文雷雨剧本原文
- 【信息技术】组建无线局域网 课件 2023-2024学年人教-+中图版(2019)高中信息技术必修2
- 理论力学简明教程(第二版)课后答案陈世民
- 2024年10月公务员制度自考试卷含解析
- MOOC 电路基础-西北工业大学 中国大学慕课答案
- 幼儿园课件:谷雨绘本故事-养蚕忙
- 高级审计师《审计理论与审计案例分析》真题
- 眼部护理中医知识培训课件
- 干部队伍现状分析报告
- 《家族职业树》课件
评论
0/150
提交评论