Картирование плохого WSDL
Я пытаюсь взаимодействовать с веб-сервисом другой компании через WSDL.
Я импортировал его в VS2010 в качестве справочной службы, я могу сделать запрос просто отлично. Проблема в том, что возвращаемые типы - это строки (из xml). Теперь я довольно новичок в сделке WSDL, но из того, что я прочитал, должны быть типы возврата в контракте, а затем ссылка на службу автоматически создаст для меня классы.
Как мне исправить это?
- Я полагаю, я мог бы отобразить строки XML, если так, может кто-нибудь показать мне хороший пример? Как я пытался безрезультатно.
- Могу ли я указать веб-службе использовать тип возврата, который я укажу?
- Или у меня неправильное представление о WSDL? И если да, то может ли кто-нибудь объяснить несоответствия в моем понимании?
1 ответ
Ваша основная идея верна: наличие службы wsdl должно определять объекты возврата и ввода для операций службы. У поставщика услуг может быть веская причина просто вернуть вам строки, или, может быть, он просто не знал лучше.
Для вас WSDL является последней границей, если ваш деловой партнер не может предоставить новую, вы не можете изменить интерфейс службы, поэтому вам приходится иметь дело со строками XML.
Проверьте XMLDocument, он предлагает метод Load(), принимающий строку. Если это не удастся, скорее всего, вы пропустили XSD или у вас нет действительного / правильно оформленного XML-документа, содержащегося в строке. В обоих случаях ваш деловой партнер должен исправить ошибку или предоставить дополнительную информацию.