首页 > 代码库 > 自定义工作流

自定义工作流

  WWF提供了对原有活动进行扩展以及自定义新活动的功能,用户可以通过"Workflow Activity Library"创建和开发自定义活动。

  

一、自定义活动类型

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

  

  代码如下:

namespace ActivityLibrary1{    public partial class Activity1: SequenceActivity    {        public Activity1()        {            InitializeComponent();        }    }}

  如果用户想创建一个特殊的补偿类型的自定义活动,那么可以通过继承"System.Workflow.ComponentModel.CompositeActivity"父类来实现。

    public partial class Activity1 : CompositeActivity    {        public Activity1()        {            InitializeComponent();        }    }

  该类型的自定义活动外观如下图:

  

  如果用户想在CallExternalMethod活动基础上封装一些额外的功能,那么可以通过继承"System.Workflow.Activities.CallExternalMethodActivity"父类来实现。

  

  

  如果用户想在HandleExternalEvent活动基础上封装一些额外的功能,那么可以通过继承"System.Workflow.Activities.HandleExternalEventActivity"父类来实现。

  

  用户可以通过继承"System.Workflow.ComponentModel.Activity"父类来自定义一个"ComponentModelActivity"类型的自定义活动。它与"SequenceActivity"类型自定义活动是日常工作中最常使用的两种类型的自定义活动,它与"SequenceActivity"类型自定义活动的区别是用户不能在其内部添加任何子活动。

  

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

  在WWF中可以通过"DependencyProperty"来存储和管理自定义活动的属性。

  首先定义一个"DependencyProperty"属性并且利用它的"Register"方法进行注册。在注册时需要指明该"Dependency Property"属性所存储的"属性名称"、"属性的类型"、以及该属性"所在自定义活动的名称",还可以利用"PropertyMetadata"来为属性定义默认值。

 

自定义工作流