Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
工作流4.0使用动态更改(System.Workflow.ComponentModel.WorkflowChanges)对WF4进行版本控制_Workflow_Versioning_Workflow Foundation 4_Workflow Activity - Fatal编程技术网

工作流4.0使用动态更改(System.Workflow.ComponentModel.WorkflowChanges)对WF4进行版本控制

工作流4.0使用动态更改(System.Workflow.ComponentModel.WorkflowChanges)对WF4进行版本控制,workflow,versioning,workflow-foundation-4,workflow-activity,Workflow,Versioning,Workflow Foundation 4,Workflow Activity,我有一个非常大的工作流,它使用框架4。 某些工作流可以在系统中保留长达2年,每当我更新工作流时,所有现有实例都将不再工作 我见过一些使用“路由”方法的变通方法,其中系统中有两个不同版本的WF,它将在执行时路由到正确的WF。但是,我无法真正使用此方法,因为我需要所有现有实例来使用更新后的新版本的工作流 因此,我找到了动态更新的方法来解决它,但我无法让它工作。 有人在什么地方有教程吗?我见过一些例子,但它们似乎是.NETFramework2或3 目前,我已经创建了一个名为TestClass.cs的新

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

我见过一些使用“路由”方法的变通方法,其中系统中有两个不同版本的WF,它将在执行时路由到正确的WF。但是,我无法真正使用此方法,因为我需要所有现有实例来使用更新后的新版本的工作流

因此,我找到了动态更新的方法来解决它,但我无法让它工作。 有人在什么地方有教程吗?我见过一些例子,但它们似乎是.NETFramework2或3

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

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);
        }
    }
}
但行:新的工作流程改变(这); 正在给我一个错误,因为“this”不是System.Workflow.ComponentModel.Activity对象,我不确定要传入什么

我不确定是否有人能告诉我一些信息,或者你有一些我可以跟踪的工作样本


非常感谢

这行不通。WorkflowChanges类型及其所需的System.Workflow.ComponentModel.Activity是WF3而不是WF4的一部分


使用WF4时,您必须等待.NET 4.5获得类似的功能。

感谢Maurice的回复,因此.NET 4中目前没有进行动态更新的方法。。?或者以其他方式实现它..?不,无法将现有Workfow状态更新为新定义。您可以使用您提到的路由器进行版本管理,但这是一个手动选项,仅适用于新实例。