覆盖工作流程中的活动?

| 我有一个复杂的工作流程,用于向客户发送营销电子邮件。大约有20项活动可以决定谁收到哪种电子邮件。 我的活动的95%是在二进制活动库中定义的。我在Visual Studio中安排了我的主要活动。 对于某些类型的客户,我希望(例如)步骤25a中的活动行为与我建立该活动时定义的行为不同。我们可以从数据库中托管的xaml加载活动。 一种选择是为那些客户克隆整个工作流程,但这是很多代码重复。 是否有可能重写运行时用于定位和封送活动的任何内容,以便如果我的客户是左撇子,那么工作流中的一个活动将代替我在IDE中定义的活动? 我正在考虑如何在mvc中覆盖ViewEngine以动态加载ipad视图或其他内容。加载活动是否有类似内容?     
已邀请:
好消息……我已经在Microsoft.Activities中构建了您所需的功能。有关详细信息,请参阅WF4如何以XAML形式调用子工作流,而就在昨天,我添加了对跟踪子工作流的支持,请参阅使用InvokeWorkflow跟踪子工作流。     
如果将活动编译到程序集中,则不能替换工作流本身中的活动。不过,您可以使用几个选项: 使用通过ActivityXamlServices.Load()动态加载的活动,由于XAML只是XML,因此在对它进行修改之前对其进行了更改。 在工作流中使用包装器活动,该包装器活动仅在运行时加载实际活动,并使用WorkflowInvoker来执行该活动。 通过使用活动和扩展将意图与实现分开。该活动仅获取所有输入和扩展,并在其上调用一个函数。在运行时,您可以根据需要更改工作流扩展的实际实现。     

要回复问题请先登录注册