Интерфейс к веб-сервису?

У меня есть два веб-сервиса, которые имеют абсолютно одинаковые методы и подписи, но указывают на разные серверы (в частности, на производственную и промежуточную среды Virtual Earth). Я хочу переключаться между использованием производственных и промежуточных сервисов на основе настроек конфигурации и не хочу повторяться и повторять каждый метод, где я вызываю одну из служб.

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

Или мне просто нужно обратиться к одной из служб и переключить свойство url в зависимости от того, хочу ли я использовать производственную или промежуточную среду?

2 ответа

Решение

Если я вас правильно понимаю, у вас есть ОДИН веб-сервис, который развернут в производственных и промежуточных средах. В этом случае единственное, что вам нужно сделать, это переключаться между ними через свойство Url.

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

Я полагаю, вы используете SvcUtil для создания своих клиентских классов? Я не. Я создал интерфейсы один раз и использую их для создания сервиса, используя ChannelFactory с этим сервисным контрактом.

Может быть, помещение вашего сервисного контракта в отдельную сборку и использование ChannelFactory для создания прокси поможет вам?

Конечно, если меняется только сервисный URL, вы можете просто изменить его в файле конфигурации.

Другие вопросы по тегам