На работе у нас есть старое приложение, которое использует код Microsoft .NET Framework 3.5.
Кроме того, оно использует пространство имен .NET Framework 3.5 System.Workflow.Runtime.
В приведенном ниже коде есть пользовательский класс с именем CallWorkflowService
, который расширяет System.Workflow.Runtime.Hosting.WorkflowRuntimeService
У нас также есть пользовательский класс с именем CallWorkflowWorkflowLoaderService
, который расширяет System.Workflow.Runtime.Hosting.WorkflowLoaderService
У нас также есть собственный класс с именем CustomApp.SequentialWorkflowActivityProcessFund
(который представляет собой диаграмму последовательного рабочего процесса), который расширяет System.Workflow.Activities.SequentialWorkflowActivity
WorkflowRuntime workflow2 = null;
string e_date = "12/31/2018";
Console.WriteLine(e_date);
Console.WriteLine("Begin Processing");
AppGuid = Guid.Empty;
ManualResetEvent waitHandle = new ManualResetEvent(false);
if (workflow2 == null)
{
workflow2 = new WorkflowRuntime("WorkflowRuntime");
workflow2.AddService(new CallWorkflowService());
workflow2.AddService(new CallWorkflowWorkflowLoaderService());
workflow2.WorkflowCompleted += delegate(object sender, WorkflowCompletedEventArgs e) { if (e.WorkflowInstance.InstanceId == AppGuid) Console.WriteLine("Done"); waitHandle.Set(); };
workflow2.WorkflowTerminated += delegate(object sender, WorkflowTerminatedEventArgs e) { Console.WriteLine(e.Exception.Message); waitHandle.Set(); };
}
Dictionary<string, object> input = new Dictionary<string, object>();
input.Add("ClientID", 5);
input.Add("StartDate", Convert.ToDateTime("12/01/2018"));
input.Add("UserName", "JohnDoe");
input.Add("ConnectionString", Convert.ToString(connection_string));
input.Add("ForecastApp", false);
WorkflowInstance instance = workflow2.CreateWorkflow(typeof(CustomApp.SequentialWorkflowActivityProcessFund), input);
AppGuid = instance.InstanceId;
waitHandle.Reset();
instance.Start();
waitHandle.WaitOne();
Мне трудно найти учебники / руководства для System.Workflow.Runtime в .NET Framework 3.5
Может кто-нибудь помочь мне проанализировать и изучить вышеупомянутый код?
Я предполагаю, что System.Workflow.Runtime.WorkflowRuntime "вызывает" System.Workflow.Runtime.WorkflowInstance.Это правильно?
Я предполагаю, что System.Workflow.Runtime.WorkflowInstance похож на класс System.Threading.Thread.Это правильно?
Может кто-нибудь предоставить ссылки на некоторые интерактивные учебные пособия для пространства имен Old.NET Framework 3.5 System.Workflow.Runtime?