我正在尝试使用REST界面使Windows Workflow Services 4.0正常工作。我有一个非常简单的工作流服务,名为“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'。
但是,在幕后创建的服务没有实现IService接口,我想知道如何扩展由工作流引擎实例化的服务来实现我自己的接口(我在上面描述)?
由于
答案 0 :(得分:3)
在WF4中,您无法在代码中声明ServiceContract并使用它。契约在XAML中声明,WorkflowServiceHost从声明生成终点。
要为您的工作流程服务启用REST,您几乎没有选择: