技术开发 频道

详解Visual Studio 2010中的活动设计器

  【IT168 技术文档】正如你已经看到的, Windows工作流允许你使用代码创建自定义活动。根据不同的需求,你可以使用几种不同的类。

  1.打开解决方案

  你需要根据以下步骤:

  (1)开启Microsoft Visual Studio 2010。

  (2)在%TrainingKitInstallFolder%\Labs\ IntroToWF\Ex9-ActivityDesigner\Begin目录下打开解决方案。

  (3)按CTRL+SHIFT+B来编译解决方案。

  2.创建自定义的NativeActivity

  在这个练习中,我们会创建一个简单的自定义活动,它具有Pre/Post processing的能力。

  (1)按CTRL+SHIFT+B来编译解决方案。

  (2)右击HelloWorkflow解决方案文件并选择Add / New Project…

  (3)选择Workflow模板并点击Activity Library. 输入项目名HelloWorkflow.Activities


加一个叫做HelloWorkflow.Activities的新Activity Library项目

  (4)删除 Activity1.xaml,因为这次练习中将不需要它。

  (5)右击HelloWorkflow.Activities 并选择Add / NewItem (Ctrl+Shift+A)

  (6)从Workflow模板中选择Code Activity并将它取名为PrePostSequence


添加一个名为PrePostSequence的新Code Activity

  (7)PrePostSequence类将作为其它活动的容器。我们需要对模板提供的代码做一些修改。删除这个类的内容,用以下代码替代。

  (代码段- Introduction to WF4 Lab – PrePostSequence Class CSharp)

  public sealed class PrePostSequence : NativeActivity

  {

  
public Activity Pre { get; set; }

  
public Activity Post { get; set; }

  
public List Activities { get; set; }

  
public PrePostSequence()

  {

  Activities
= new List();

  }

  
protected override void Execute(NativeActivityContext context)

  {

  
// Schedule the activities in order

  context.ScheduleActivity(Pre);

  Activities.ForEach((a)
=> { context.ScheduleActivity(a); });

  context.ScheduleActivity(Post);

  }

  }

  (代码段
- Introduction to WF4 Lab – PrePostSequence Class VB)

  Visual Basic

  Public NotInheritable Class PrePostSequence

  Inherits NativeActivity

  Public Property Pre As Activity

  Public Property Post As Activity

  Public Property Activities As List(Of Activity)
= New List(Of Activity)

  Protected Overrides Sub Execute(ByVal context

  As System.Activities.NativeActivityContext)

  context.ScheduleActivity(Pre)

  For Each Activity In Activities

  context.ScheduleActivity(Activity)

  Next

  context.ScheduleActivity(Post)

  End Sub

  End Class

   (8)按CTRL+SHIFT+B编译解决方案

0
相关文章