Web api中的Microsoft工作流主机

Jac*_*ong 0 workflow-foundation asp.net-web-api2

我打算在我的项目中使用Microsoft Workflow,并允许其他系统通过rest api触发它.那么,我们可以通过web api 2托管它.我不想使用WCF,因为它很重,将被web api取代.

谢谢.

hel*_*msb 5

Workflow Foundation并没有像WCF一样支持WebAPI,但是开发团队已经表明它肯定会在未来的版本中出现.

但是,Workflow的最佳功能之一是您可以从任何C#代码调用工作流.因此,您可以创建一个WebAPI项目,并在该方法中简单地水合工作流参数并调用工作流然后将结果传回.

 WorkflowInstance = new WorkflowInvoker(myWorkflow);
 var InputArguments = new Dictionary<string, object>();
 InputArguments.Add("MyArgument", myVariable);
 var resultDictionary = WorkflowInstance.Invoke(InputArguments);
 var result = (myResult)resultDictionary["MyResult"];
Run Code Online (Sandbox Code Playgroud)

我写了一篇博客文章,其中包含如何使用Workflow with Web API的代码示例. http://code-coverage.net/using-windows-workflow-with-web-api/