C# WCF工作流服务REST接口

C# WCF工作流服务REST接口,c#,wcf,rest,workflow,workflowservice,C#,Wcf,Rest,Workflow,Workflowservice,可能重复: 我正在尝试使Windows Workflow Services 4.0与REST界面一起工作。我有一个名为“Service1”的非常简单的工作流服务,其中包含receiveRequest和sendResponse活动 默认情况下,WF服务自动生成实现的类和接口,但是我希望强制WF服务使用我自己的支持REST的接口,而不是一些内部自动生成的接口 接口如下所示: [ServiceContract] public interface IService { [OperationCo

可能重复:

我正在尝试使Windows Workflow Services 4.0与REST界面一起工作。我有一个名为“Service1”的非常简单的工作流服务,其中包含receiveRequest和sendResponse活动

默认情况下,WF服务自动生成实现的类和接口,但是我希望强制WF服务使用我自己的支持REST的接口,而不是一些内部自动生成的接口

接口如下所示:

[ServiceContract]
public interface IService
{
    [OperationContract]
    [WebInvoke( UriTemplate = "/Data/{item}", Method = "GET" )]
    String GetData( Int32 item );
}
但是,我很难配置XAML以使用此接口。 我需要这样的XAML配置来指定服务合约名称是我自己的合约:

 <Receive x:Name="__ReferenceID0" CanCreateInstance="True" DisplayName="ReceiveRequest" sap:VirtualizedContainerService.HintSize="464,90" OperationName="GetData" ServiceContractName="w:IService">

但是,当我运行此工作流服务时,会出现以下异常:

在服务“Service1”实现的合同列表中找不到合同名称“wfService.IService”。

但是,在后台创建的服务并没有实现iSeries接口,我想知道如何扩展工作流引擎实例化的服务来实现我自己的接口(我在上面描述过)


谢谢

在WF4中,您不能在代码中声明ServiceContract并使用它。契约在XAML中声明,WorkflowServiceHost根据声明生成端点

要为workflowservice启用REST,您只有几个选项:

  • 从中使用HttpWorkflowHost。限制是这样你就只能休息了
  • 执行类似的操作: 区别在于:替换WorkflowFormatterBehavior而不是DataContractSerializerOperationBehavior,参数是从消息协定而不是操作协定中提取的,请记住,本例中没有客户端部分,您必须根据协议格式化响应

  • 看看@Maurice答案。