我打算在我的项目中使用Microsoft Workflow,并允许其他系统通过rest api触发它。那么,我们可以通过web api 2来托管它。我不想使用WCF,因为它很重,将被web api取代。
感谢。
答案 0 :(得分: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"];
我写了一篇博客文章,其中包含如何使用Workflow和Web API的代码示例。 http://code-coverage.net/using-windows-workflow-with-web-api/