Как указать операцию WCF для вызова во время выполнения? - PullRequest
0 голосов
/ 10 января 2012

У меня есть веб-служба WF WCF (служба документооборота 4.0), и каждая операция этой службы имеет одну и ту же подпись, но другое имя.

Моя система получает событие {int eventType, int entityId} и должна отправить это событие операции в веб-службе, о которой я упоминал выше, используя конфигурацию.

например. Предположим, у меня есть файл конфигурации (который сопоставляет 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 Workflow Foundation 4.0. Я хочу иметь возможность добавлять новую точку входа в веб-службу и изменять конфигурационный файл для диспетчера событий без необходимости перекомпиляции диспетчера событий.

1 Ответ

0 голосов
/ 11 января 2012

Скорее всего, вам потребуется вызвать другой сервис (или другую операцию в вашем сервисе), который принимает в качестве параметра eventType.Внутри этой операции вы создадите новый канал и вызовете соответствующую операцию (как вы уже делаете).

...