Служба WCF, вызывающая Службу WCF - Где разместить ссылку на службу клиента? - PullRequest
1 голос
/ 17 мая 2011

Я смотрю на реализацию Сервиса WCF, который, в свою очередь, будет вызывать одну (или, возможно, несколько) внешних Сервисов WCF (или, по крайней мере, веб-сервисы, которые я буду вызывать из кода с использованием ссылок (ссылок) на Сервис WCF)

Мое решение разбито на ServiceLayer, BusinessLogicLayer, DomainLayer, DtoObjects и т. Д.

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

Это правильно?

Или:
Создайте клиента в ServiceLayer и передайте его в BLL.
Не уверен, что мне нравится эта идея ... но она означает только один конфиг.

Или:
Есть ли другой способ?

1 Ответ

0 голосов
/ 17 мая 2011

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

Если вы можете использовать WCF Discovery (http://msdn.microsoft.com/en-us/library/dd456782.aspx),, это может уменьшить объем создаваемой конфигурации. Кроме того, использование интерфейсов и ChannelFactory<T> вместо ServiceReferences даст вам более чистую настройку.

Надеюсь, это поможет.

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