У меня очень большой рабочий процесс, он использует фреймворк 4. Некоторые рабочие процессы могут оставаться в системе до 2 лет, и всякий раз, когда я обновляю рабочий процесс, все существующие экземпляры больше не будут работать.Workflow 4.0 versioning WF4 с использованием динамических изменений (System.Workflow.ComponentModel.WorkflowChanges)
Я видел некоторые обходные пути с использованием метода «Маршрутизация», в котором у вас есть две разные версии WF в системе, и он будет маршрутизироваться в правильный WF, когда он выполняется. Однако я не мог использовать этот метод, потому что мне нужны все существующие экземпляры для использования обновленной новой версии рабочего процесса.
Поэтому я нашел способ динамического обновления, чтобы обойти его, но я не мог заставить его работать. Есть ли у кого-нибудь учебники? Я видел несколько примеров, но они, кажется, .NET Framework 2 или 3.
В настоящее время я создал новый класс Activity называется: 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);
}
}
}
Но строка: new WorkflowChanges (this); дает мне ошибку, потому что «это» не является объектом System.Workflow.ComponentModel.Activity, и я не уверен, что передать.
Не уверен, что кто-нибудь может пролить меня на свет или у вас есть Я могу следовать за некоторыми рабочими образцами.
Спасибо большое!
Спасибо Морису за ответ, поэтому в .NET 4 нет работы, чтобы сделать динамическое обновление ..? или другие способы его достижения ..? – Kris
Нет никакого способа обновить существующее состояние worklfow до нового определения. Вы можете управлять версией с помощью маршрутизатора, как вы упомянули, но это ручной вариант и только для новых экземпляров. – Maurice
Спасибо Морис! – Kris