使用动态更改的Workflow 4.0版本化WF4(System.Workflow.ComponentModel.WorkflowChanges)

时间:2012-06-15 04:19:33

标签: workflow versioning workflow-foundation-4 workflow-activity

我有一个非常大的工作流程,它正在使用框架4。 某些工作流程可以在系统中保留长达2年,每当我更新工作流程时,所有现有实例将不再有效。

我见过一些使用'Routing'方法的解决方法,你在系统中有2个不同版本的WF,它会在执行时路由到正确的WF。但是我无法真正使用此方法,因为我需要所有现有实例来使用更新的新工作流版本。

因此,我找到了动态更新方式来解决它,但我无法让它工作。 有人在某处有任何教程吗?我见过一些例子,但它们似乎是.NET framework 2或3。

目前,我创建了一个名为TestClass.cs的新Activity类 这是代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Activities;
using SPABLL;
using System.Workflow.ComponentModel;

namespace SPAWorkflow.Activities.DynamicUpdate
{
    public sealed class TestClass : NativeActivity
    {
        protected override void Execute(NativeActivityContext context)
        {
            WorkflowChanges wc = new WorkflowChanges(this);
        }
    }
}

但行:new WorkflowChanges(this); 给我一个错误,因为'this'不是System.Workflow.ComponentModel.Activity对象,我不知道该传递什么..

不确定是否有人可以给我一些光线,或者你有一些我可以效仿的工作样本。

非常感谢!!!

1 个答案:

答案 0 :(得分:0)

这不起作用。它需要的WorkflowChanges类型和System.Workflow.ComponentModel.Activity是WF3的一部分而不是WF4。

使用WF4,您将不得不等待.NET 4.5获得类似的功能。