Универсальная маршрутизация / пересылка WCF / прокси-сервер - PullRequest
2 голосов
/ 12 апреля 2011

Можно ли создать «универсальный», как в «адаптируемом» сервисе маршрутизации, который НЕ будет иметь никаких открытых методов для вызова.Вместо этого вы сможете вызывать любую команду, которая затем будет отображена в службе и передаст ее соответствующей конечной точке с простым преобразованием сообщения, где это необходимо.Это может быть трудно понять, и идея может показаться немного сумасшедшей (она пришла от моего коллеги), но это будет понятнее, если вы посмотрите на пример:

WCF 4.0 Routing Service –Content Based Routing (CBR).

аналогичночто описано в этой статье , единственное отличие состоит в том, что наш сервис не должен иметь публичный метод SubmitTimeSheet, фактически он не должен иметь открытых методов для вызова.Мы должны были бы «перехватить» входящий вызов на гораздо более низком уровне, прежде чем он вернет ошибку «Метод не найден».

Возможно ли это вообще?Причина этого очевидна: возможность добавления новых клиентов без необходимости изменения кода.Все, что нам нужно сделать, это добавить новую запись сопоставления в какой-либо файл конфигурации или даже базу данных, например,

<Client address="newClientAddress" method="DoAnything" transformation="NewClientDoAnything.xslt" endPoint="endPointClientAddress" endPointMethod="endPointClientDoAnything" />

Ответы [ 2 ]

2 голосов
/ 05 мая 2011

Ознакомьтесь с маршрутизацией WCF 4 - поддерживает контентную маршрутизацию, преобразования xpath и многое другое.

http://blogs.msdn.com/b/routingrules/

0 голосов
/ 12 апреля 2011

Они уже сделали это в Нирване . Но это очень дорого.

Это невозможно в WCF, если вы не определите свой контракт как очень свободный, подходящий для всех контракт, который принимает сообщение и возвращает сообщение. Делая это, вы потеряете все добро (хотя и не огромное в WCF) WCF.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...