如何指定在运行时调用WCF操作?

时间:2012-01-10 17:32:50

标签: wcf workflow-foundation-4 workflowservice

我有一个WCF WF Web服务(工作流服务4.0),并且此服务的每个操作都具有相同的签名,但名称不同。

我的系统收到一个事件{int eventType, int entityId},需要使用配置将该事件发送到我上面提到的Web服务上的操作。

E.g。假设我有配置文件(将eventType映射到操作名称):

1 -> "StartOrder"
5 -> "StopOrder"
8 -> "ProcessPaymet"
9 -> "RepartFraud"

所以,如果我收到等于5的eventType,我需要做类似的事情:

string operationName = eventTypeToOperationMap[eventType];
new ChannelFactory<IMyWebService>().CreateChannel().CallOperation(operationName, entityId);

和IMyWebService有一个方法:

void StopOrder(int entityId);

背景:IMyWebService是一个Windows工作流基础4.0工作流服务。我希望能够为Web服务添加新的入口点,并更改事件调度程序的配置文件,而无需重新编译事件调度程序。

1 个答案:

答案 0 :(得分:0)

您很可能需要调用另一个服务(或服务上的其他操作),该服务将eventType作为参数。在该操作中,您将创建一个新通道并调用相应的操作(就像您已经在做的那样)。