Можно ли создать «универсальный», как в «адаптируемом» сервисе маршрутизации, который НЕ будет иметь никаких открытых методов для вызова.Вместо этого вы сможете вызывать любую команду, которая затем будет отображена в службе и передаст ее соответствующей конечной точке с простым преобразованием сообщения, где это необходимо.Это может быть трудно понять, и идея может показаться немного сумасшедшей (она пришла от моего коллеги), но это будет понятнее, если вы посмотрите на пример:
аналогичночто описано в этой статье , единственное отличие состоит в том, что наш сервис не должен иметь публичный метод SubmitTimeSheet, фактически он не должен иметь открытых методов для вызова.Мы должны были бы «перехватить» входящий вызов на гораздо более низком уровне, прежде чем он вернет ошибку «Метод не найден».
Возможно ли это вообще?Причина этого очевидна: возможность добавления новых клиентов без необходимости изменения кода.Все, что нам нужно сделать, это добавить новую запись сопоставления в какой-либо файл конфигурации или даже базу данных, например,
<Client address="newClientAddress" method="DoAnything" transformation="NewClientDoAnything.xslt" endPoint="endPointClientAddress" endPointMethod="endPointClientDoAnything" />