0

WCF WF Web サービス (ワークフロー サービス 4.0) があり、このサービスの各操作には同じ署名がありますが、名前は異なります。

私のシステムはイベントを受け取り、{int eventType, int entityId}構成を使用して上記の Web サービスの操作にそのイベントをディスパッチする必要があります。

たとえば、構成ファイル (eventType を操作名にマップする) があるとします。

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

したがって、eventType5に等しい場合は、次のようにする必要があります。

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

IMyWebService には次のメソッドがあります。

void StopOrder(int entityId);

背景: IMyWebServiceWindows Workflow Foundation 4.0 ワークフロー サービスです。イベント ディスパッチャーを再コンパイルすることなく、Web サービスに新しいエントリ ポイントを追加し、イベント ディスパッチャーの構成ファイルを変更できるようにしたいと考えています。

4

1 に答える 1

0

ほとんどの場合、eventType をパラメーターとして受け取る別のサービス (ま​​たはサービスの別の操作) を呼び出す必要があります。その操作内で、新しいチャネルを作成し、対応する操作を呼び出します (既に行っているように)。

于 2012-01-10T20:10:23.973 に答える