ServiceContractGenerator против ServiceDescriptionImporter - PullRequest
1 голос
/ 18 ноября 2009

Я пытаюсь создать облегченный SOAP-клиент без использования Add Service Reference. В идеале этот клиент должен работать для максимально возможного количества услуг. В настоящее время он использует ServiceDescriptionImporter для генерации сервисной сборки. К сожалению, это не работает для служб WCF. Кто-то порекомендовал вместо этого использовать ServiceContractGenerator, поскольку ServiceDescriptionImporter разработан специально для веб-служб ASMX.

Если я использую ServiceContractGenerator, буду ли я заблокирован только для поддержки служб WCF?

1 Ответ

7 голосов
/ 20 ноября 2009

ServiceDescriptionImporter - это класс, который используется диалоговым окном «Добавить веб-ссылку» в VS и инструментом «wsdl.exe» в SDK для создания прокси клиентского веб-сервиса в стиле «asmx». ServiceContractGenerator является эквивалентом WCF для диалога «Добавить ссылку на службу» в VS и инструмента «svcutil.exe» в SDK. Первый использует клиентскую инфраструктуру asmx (System.Web.Services.Protocols.SoapHttpClientProtocol и друзья), а второй - клиентскую инфраструктуру WCF (System.ServiceModel.ClientBase и друзья).

Любой из них сможет общаться с большинством сервисов, то есть он предназначен для клиентской инфраструктуры WCF и asmx, чтобы обеспечить широкую совместимость с рядом стандартов веб-сервисов. Клиент WCF может общаться с сервером asmx (а также с серверами других поставщиков) и наоборот.

Тем не менее, WCF новее, богаче, лучше поддерживается и поддерживает больше стандартов WS, чем asmx. Вы наверняка не будете привязаны только к поддерживающим службам WCF.

...