学习WF笔记9- 自定义工作流活动(1)

  

WF已经提供了很多类型的活动,这些活动可以满足大部分人员的基本需求,但在实际项目中有时也需要重新开发或者封装一些具有特殊业务意义的活动在工作流中使用,因此WF提供了对原有活动进行扩展以及自定义新活动的功能,如图一所示,用户可以通过"Workflow Activity Library"创建和开发自定义活动。

1  创建自定义活动项目

 

1.1自定义活动的类型

默认情况下创建的自定义活动是继承“System.Workflow.Activities.SequenceActivity”父类的。图2所示,该类型自定义活动的外观是由一个Sequence顺序类型的容器构成的,用户可以在Sequence活动内添加其他子活动。

2 SequenceActivity类型自定义活动

       如果用户想创建一个特殊的补偿类型的自定义活动,可以通过继承“System.Workflow.ComponentModel.CompositeActivity”父类来实现。该类型的自定义活动的外观如图3所示,用户不能向该活动内添加任何子活动。

3  CompositeActivity类型自定义活动

       如果用户想在CallExternalMethod活动基础上封装一些额外的功能,那么可以通过继承”System.Workflow.Activities.CallExternalMethodActivity”父类来实现。该类型的自定义活动外观如图4所示。

4  CallExternalMethodActivity类型自定义活动

       如果用户想在HandleExternalEvent活动基础上封装一些额外的功能,那么可以通过继承“System.Workflow.Activities.HandleExternalEventActivity”父类来实现。该类型的自定义活动外观如图5所示。

5  HandleExternalEventActivity类型自定义活动

       用户可以通过继承“System.Workflow.componentModel.Activity”父类来自定义一个”ComponentModelActivity”类型的自定义活动。它与”SequenceActivity”类型自定义活动都是日常工作中最常使用的两种类型的自定义活动,它与“SequenceActivity”类型自定义活动的区别是用户不能在其内部添加任何子活动。该类型的自定义活动的外观如图6所示。

 

6  ComponentModelActivity类型自定义活动 

利用WF开发出来的自定义活动使用起来也非常简单。如图7所示,在同一个解决方案下开发的自定义活动,只要编译成功后就可以在“工具栏”中看到并可以直接使用。


7 工具栏会显示开发的自定义活动

 

posted on 2009-11-23 19:31  梅卫军  阅读(806)  评论(6编辑  收藏  举报