0
我有一个WCF WF Web服务(工作流服务4.0),并且此服务的每个操作具有相同的签名,但具有不同的名称。如何指定WCF操作在运行时调用?
我的系统收到一个事件{int eventType, int entityId}
,需要使用配置将该事件分派到上述Web服务上的操作。
E.g.假设我有配置文件(映射EVENTTYPE到操作名称):
1 -> "StartOrder"
5 -> "StopOrder"
8 -> "ProcessPaymet"
9 -> "RepartFraud"
所以如果我收到eventType
5等于我需要做的是这样的:
string operationName = eventTypeToOperationMap[eventType];
new ChannelFactory<IMyWebService>().CreateChannel().CallOperation(operationName, entityId);
和IMyWebService有一个方法:
void StopOrder(int entityId);
背景:IMyWebService
是一个windows工作流基础4.0工作流服务。我希望能够为Web服务添加新的入口点,并更改事件分派器的配置文件,而无需重新编译事件分派器。
嗨THX,你可以考虑重构你的服务接口,以便它将int eventType作为输入参数吗?您的服务代码可以相应地进行分支。这意味着要从细粒度的服务界面转向更通用的界面。我没有把这个作为答案,因为它没有回答你问的实际问题,但我认为这可能是一个替代方法,可以让你摆脱困境。 – 2012-01-10 17:51:42