定制活动-机器人学导论第三版课后习题答案

congress_77132 6 0 pdf 2024-07-27 08:07:59

27.4定制活动

本章前面的示例仅使用了内置活动,而工作流还允许编写定制活动,接着就可以像内置活动那样使用定制活动。本章的前面提到,有两大类活动:单一活动和复合活动。本节将创建这两类活动。活动由拥有它的工作流(或父活动)安排执行。接着要执行什么操作主要取决于活动的编写者。例如对于WriteLine活动,在该活动的代码中一般会调用Console.WriteLine。编写活动时,一般会重写Execute方法,以便提供定制代码。这个方法随活动的基类而变化。这些基类及其执行方法如表27-1所示。

| 基类 | 执行方法 |

| --- | --- |

| AsyncCodeActivity | IAsyncResult BeginExecute(AsyncCodeActivityContext, AsyncCallback, object) void EndExecute(AsyncCodeActivityContext, IAsyncResult) |

| CodeActivity | void Execute (CodeActivityContext) |

| NativeActivity | void Execute (NativeActivityContext) |

| AsyncCodeActivity | IAsyncResult BeginExecute(AsyncCodeActivityContext, AsyncCallback, object) TResult EndExecute(AsyncCodeActivityContext, IAsyncResult) |

| CodeActivity | TResult Execute (CodeActivityContext) |

| NativeActivity | void Execute (NativeActivityContext) |

简单的基类是CodeActivity,CodeActivity还有一个泛型版本,该版本接受一个类型变元——用作执行该活动时的返回值。工作流可以返回变元,同样,活动在执行后也可以返回一个值,这个数据可以在工作流中绑定,这样,一个活动的输出就可以变成下一个活动的输入。假定要在工作流中使用当前时间,就可以创建一个返回DateTime值的活动,该活动执行时通过调用DateTime.Now获得这个时间信息。只要创建一个定制活动即可,而无需把一个字符串输出到控制台上。

下面的示例说明了创建定制活动的过程。试一试:编写定制活动(1)在Visual Studio 2010中,创建一个新的“工作流控制台应用程序”(Workflow Console Application)项目。需要更多示例代码和详细说明?您可以参考Visual Studio背景定制插件或是visual studio2010vsto示例代码来获取更全面的理解。甚至可以查看基于活动的PHP工作流引擎来了解更多不同平台上的实现。

是不是感觉更有信心了呢?在编写定制活动的过程中,如果遇到问题,还可以查阅活动目录OpenLDAP操作示例代码以获得帮助,或者参考活动摇奖代码中的实例来激发灵感。

让我们开始吧!创新从现在开始,创造属于你的独特活动。

用户评论
请输入评论内容
评分:
暂无评论