WF - 动态改变工作流模板

上周去珠海做了一次WF培训,有人提出了一个问题:
    如何可以动态的改变工作流而不需要重新编译。例如,有一套标准的流程,在不同客户项目上进行实施时,实施人员只需要通过工具简单的根据特定客户的需要改变一下流程,就可使用。不需要开发人员重新为此客户修改编译代码。

WF虽然提供了 Workflow Changes类来提供动态改变工作流的技术,但是此方法仅能改变某个工作流实例的流程,而不能改变其他实例的流程。也就是说此方法不是工作流模板级别的变更方法。

XAML Activation是目前可以选择的一个技术:
         XAML based workflow definitions open up a number of additional possibilities. If we have a workflow definition entirely in XAML we can use workflow activation and avoid compilation. Activation is useful when building a large number of dynamic workflows. We merely need to pass the XML into the workflow runtime to have a run-able instance of a workflow.

http://www.odetocode.com/Articles/448.aspx

可以使用如下方法来读取工作流XAML文件并创建工作流实例:

public WorkflowInstance CreateWorkflow(XmlReader workflowDefinitionReader);

public WorkflowInstance CreateWorkflow(XmlReader workflowDefinitionReader, XmlReader rulesReader, Dictionary<string, object> namedArgumentValues);

        public WorkflowInstance CreateWorkflow(XmlReader workflowDefinitionReader, XmlReader rulesReader, Dictionary<string, object> namedArgumentValues, Guid instanceId);

然而代价是必须使用纯XAML标记语言,没有了Code-Beside的支持。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值