Выполнение WorkflowRuntime

Я разработал Workflow в WF4 в визуальной студии. Это так просто, и я хочу только выполнить это.

 using (WorkflowRuntime workflowRuntime = new WorkflowRuntime())
 {
     System.Workflow.Runtime.WorkflowInstance instance =  workflowRuntime.CreateWorkflow(typeof(Workflow1));//My workflow
     instance.Start();     
 }

Но когда я выполняю это, я получаю следующую ошибку.

The input workflow type must be an Activity.Parameter name: workflowType
1
nl ja de
Какой тип Workflow1? Можете ли вы опубликовать свое заявление?
добавлено автор Panagiotis Kanavos, источник
Является ли это проектом .NET 3 Activity или проектом .NET 4 Activity? Также обратите внимание, что WorkflowRuntime - это класс .NET 3, который устарел в .NET 4.5. .NET предоставляет другие методы для хоста/запуска рабочего процесса, то есть WorkflowInvoker, WorkflowApplication и WorkflowServiceHost. Проверьте Использование WorkflowInvoker и WorkflowApplication для способов для запуска рабочего процесса в .NET 4
добавлено автор Panagiotis Kanavos, источник
Он находится в проекте Activity libery, и я запускаю проект WPF. Чтобы выполнить его
добавлено автор Mahdi jokar, источник

1 ответы

Существует аналогичное обсуждение в Technet </а>. Класс WorkflowRuntime является частью Workflow Foundation 3 и не работает с типами WF4. Он включен только для обратной совместимости. Фактически, в 4.5 WorkflowRuntime обозначен как устаревший.

Вероятно, вы пытаетесь использовать рабочий процесс System.Activities.Activity для WorkflowRuntime, что приведет к возникновению описанной вами ошибки ArgumentException.

Чтобы разместить/запустить рабочий процесс WF4, вы должны использовать один из следующих классов: WorkflowInvoker, WorkflowApplication и WorkflowServiceHost. Это описано в документации, в

Использование WorkflowInvoker и WorkflowApplication .

Самый простой способ - использовать WorkflowInvoker для запуска рабочего процесса как метода, например:

Activity wf = new WriteLine
{
    Text = "Hello World."
};

WorkflowInvoker.Invoke(wf);

хотя это не дает вам большого контроля над жизненным циклом рабочего процесса.

WorkflowApplication gives you full control and WorkflowServiceHost allows you to host the workflow as a WCF service.

Фактически, вы можете разместить рабочий процесс WF4 с помощью Windows Server AppFabric без создания собственного хоста и позволить AppFabric управлять экземплярами, безопасностью и восстановлением.

2
добавлено
Microsoft Stack Jobs
Microsoft Stack Jobs
1 788 участник(ов)

Work & freelance only Microsoft Stack. Feed https://t.me/Microsoftstackjobsfeed Чат про F#: @Fsharp_chat Чат про C#: @CSharpChat Чат про Xamarin: @xamarin_russia Чат общения:@dotnettalks

Microsoft Developer Community Chat
Microsoft Developer Community Chat
584 участник(ов)

Чат для разработчиков и системных администраторов Microsoft Developer Community. __________ Новостной канал: @msdevru __________ Баним за: оскорбления, мат, рекламу, флуд, флейм, спам, NSFW контент, а также большое количество оффтоп тем. @banofbot