HandleExternalEventActivity

 

绑定外部事件(指工作流内部事件在宿主中触发)

 

1.InterfaceType要绑定到标记为[System.Workflow.Activities.ExternalDataExchange()]的一个接口上

2.EventName 要绑定到该接口声明的一个事件,事件格式最好与Invoked的事件签名一至

(object sender, ExternalDataEventArgs e)

e参数可以通过重写ExternalDataEventArgs类进行括充,下例就重写了

(事件用的是2.0的写法,也可以使用传统写法)

 

3.引擎中要加载ExternalDataExchange服务

4.ExternalDataExchange服务,要加载实现[1]所绑定接口类的实例

5.运行到HandleExternalEventActivity结点后,会进入idle状态,苏酲时间为9999-12-31

6.只有当宿主中触发绑定的事件后才会继续向下运行。

7.下例中如果所传的“InstanceId”与当前实例的[InstanceId]不一至时会报错

8.触发事件时的两个参数值会传入HandleExternalEventActivity的Invoked事件对应的参数,也会赋给参数映射中的设定

9.触发事件时 对象.触发事件("发送对象", 当前操作的实例.InstanceId   )     将要触发该事件的工作流实例的GUID号传入是非常重要的,因为引擎中可能有多个实例在等待该事件,发送工作流实例的GUID号可以告诉引擎是要触发那一个实例事件

Invoked事件

外部事件发生后发生该事件

private void handleExternalEvent_Invoked(object sender, ExternalDataEventArgs e)

e.InstanceId

e.Identity

e.WaitForIdle

e.WorkHandler

e.WorkItem

该事件中的两个参数与参数映射中的设定是一样的

可进行类型转换以得到自定义的扩充: (事件标志)e).自定义存值

 图解:
HandleExternalEventActivity.JPG

将在工作流应用中对应用作具体说明

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值