1

我正在评估新版本的Workflow Foundation(4.0),但我对自定义活动有点困惑。我正在使用Beta 1位。Workflow 4.0中的自定义活动:WorkflowElement或Activity/CodeActivity?

我相信,如果我想创建一个自定义活动我应该扩展一个WorkflowElement,如果我想我的自定义活动举办其他活动,我应该扩展活动。但是,WorkflowElement似乎有很多抽象的内部方法,我不能重写。

我的同事认为,定制非容器(即,未持有其他活动)活动应扩展CodeActivity。但在WF的最新版本中,CodeActivities不是基类,它们是在父级工作流程中执行方法的活动。

这个最新的词是什么?我应该在Workflow 4.0中为我的自定义活动使用基类吗?

+0

问题在测试期间被问到。移动,没有什么可以在这里看到。 – Will 2010-10-03 17:38:18

回答

2

当时还是挖掘和发现这一点:

  • 活动:创建一个组合活动时使用 - 活动谁的执行完全表现为其他活动组成。您可以用声明方式(使用XAML)设计从Activity类型创建的活动,并且不允许使用任何命令式代码。从概念的角度来看,创作“工作流程”(在这种情况下,定义为将一系列活动连接在一起)时,基本上是创作派生的“活动”类。
  • CodeActivity:创建实现自定义的Execute方法,而且是专为工作的短期运行的块活动时使用。
  • NativeActivity的:创建具有完全访问的WF运行时的功能,调度的子活动和操纵书签核心活动时使用。这是作为最后手段的类型,我们不希望许多人继承这种类型。
  • 一个WorkflowElement:这是一个抽象基类,所有的活动从派生。

来源:http://blogs.msdn.com/endpoint/archive/2009/05/01/the-road-to-4-wf-changes-between-beta-1-and-ctp.aspx


NativeActivity的。 CodeActivity不适用于wimps。此外,还有这些的异步版本。

+0

无法真正编辑,但认为我会添加AsyncCodeActivity类。 http://msdn.microsoft.com/en-us/library/system.activities.asynccodeactivity.aspx本质上,它是代码活动的异步版本,每个IE CodeActivity ,NativeActivity etc的泛型版本... when需要从活动中返回价值。 – Terrance 2010-10-03 05:42:32

+0

@Ter老兄,这回到beta1天。 – Will 2010-10-03 17:36:05

+0

也许如此,但完整的信息是完整的,这似乎是一个常见的问题,为什么不能有一个完整的共同答案。我认为这个问题应该是本地的,如果在标题中你把“测试版”,但因为它只是4.0我会认为它更相关 – Terrance 2010-10-04 12:26:51

0

从CodeActivity扩展为您提供了在WF实例中需要的基本功能。这是最简单的方法。

如果你想改变你WF执行调度(根据调度的一些条件另一个活动,或安排通过创建书签“等待”),您将需要从NativeActivity的扩展。

相关问题