关闭

跟我一起学Windows Workflow Foundation(5)-----使用activity设计器创建一个整合的定制activity

613人阅读 评论(1) 收藏 举报

Lab01已经完了,lab02中说的是创建自定义的Activity

Activities是工作流模型的一个可执行单元,它可以被重用,也可以把多个Activities整合成一个Activities。一个工作流可以由多个Activities组成,一个Activities也可以由其他的Activities构成,最终,每个Activities都作为一个可执行单元的形式表现出来。这次,我们来学习创建一个简单的Activity。

Activities是一个其实类,我们可以为其编写属性,方法和事件----这些属性方法和事件引用自workflow。我们还可以创建Activity并部署到.net程序集中来重用。

先看第一个:

使用activity设计器创建一个合成的定制activity

在这个练习里,我们将创建一个有两个分开的代码段组成的activity,然后我们将在一个工作流项目中使用这个activity,运行这个工作流察看运行结果。

创建一个新的WF项目

1. 创建一个名称为CompositeActivitySample顺序工作流控制台应用程序。

2.

New Picture (8)

3. 打开Program.cs查看其代码。

4. Program.csMain()方法包含了启动,加载和执行和等待工作流完成的示例代码。

5. 将项目中的Workflow1.cs重命名为HelloWorldWorkflow.cs并在弹出的提示对话框中选择时,修改所有代码引用。

创建一个Activity项目

现在我们已经创建了一个工作流项目,我们接下来要创建一个Activity项目来添加到解决方案。

在这个项目中我们去定制一个新的activity,这个新的activity中我们去添加两个基本的activity --- code的来整合成我们定制的新的activity 。

1. 新建一个项目,选择“工作流Activity库”,名称为HelloWorldActivityLibrary

2. 重命名Activity1.cs为HelloWorldActivity.cs。同样在弹出的是否对起所有引用的项目执行重名名提示时选择是。

3. 打开HelloWorldActivity的设计视图。

4. 从工具箱中拖拽一个Code activity到我们的设计视图中。

5. 如图:

CropperCapture[2]

CropperCapture[3]

6. 修改起(Name)属性为writeHello

CropperCapture[4]

7. 双击设计视图中的writeHello activity创建一个writeHello_ExecuteCode方法。

8. 在writeHello_ExecuteCode 方法中输入如下代码:

Console.Write("Hello, ");

9. 现在我们回到设计视图,再拖拽第二个Code activity到我们的设计视图中writeHello的下面,并修改(Name)属性为writeWorld

10. 双击设计视图中的writeWorld activity创建一个writeWorld _ExecuteCode方法。

11. 在 writeWorld _ExecuteCode 方法中输入如下代码:

Console.WriteLine("World");

 

生成工作流解决方案

现在我们将刚刚创建的这个activity添加到工作流中,并运行察看效果。

1. 我们点“生成---生成解决方案”或者直接点F6来生成解决方案。

2. 选择CompositeActivitySample项目中的HelloWorldWorkflow.cs来打开设计视图。

3. 这时,我们可以看到工具箱中会出现新的组件栏:

4.

5. 拖拽HelloWorldActivity到我们HelloWorldWorkflow的工作流设计视图中,并且把这个activity的(Name)属性修改为helloWorld

New Picture (10)

6. 现在我们把CompositeActivitySample作为启动项目按ctrl+f5查看运行结果吧。

7. .

8. 这里我们创建的这个activity按照顺序工作流的形式进行了执行。打印出“Hello,World”

9. 现在我们应该已经知道怎样创建一个简单的合成的activity了吧 :)

 
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:211492次
    • 积分:3773
    • 等级:
    • 排名:第8520名
    • 原创:160篇
    • 转载:1篇
    • 译文:0篇
    • 评论:27条