wsdl.exe /sharetypes
Я работаю с несколькими сторонними веб-сервисами (от одного поставщика), которые, по-видимому, используют одну и ту же серверную часть структуры объекта. Одна из служб позволяет запрашивать список пользователей по ролям, а другая позволяет запрашивать одного пользователя по идентификатору. Чтобы это работало наилучшим образом, пользователи, которые вернулись из обеих служб, должны быть взаимозаменяемыми.
Введите wsdl.exe. Я знаю, что /sharetypes делает то, что я хочу, однако, когда я генерирую свой прокси, в конечном итоге все равно остается несколько версий объектов (т.е. Person, Person1, ...).
Команда, которую я выполняю, выглядит следующим образом:
wsdl.exe /sharetypes /language:VB http://mbptest2.seniormbp.com:8080/SeniorSystemsWS/UserManagementService.asmx?wsdl http://mbptest2.seniormbp.com:8080/SeniorSystemsWS/DataExportService.asmx?wsdl http://mbptest2.seniormbp.com:8080/SeniorSystemsWS/UserProfileService.asmx?wsdl
2 ответа
Схема для DataExportService имеет tns и целевое пространство имен, определенное как http://www.senior-systems.com/
, Схема для UserProfileService имеет tns и целевое пространство имен, определенное как http://senior-systems.com/
,
Они различны, даже если они разрешаются на одном веб-сервере при использовании в качестве URL. Пространства имен XML сравниваются текстуально, а не в соответствии с синтаксисом URL. Например, http://senior-systems.com/
а также http://senior-systems.com
будет два разных пространства имен (подсказка: в одном отсутствует завершающий слеш).
В соответствии с документацией MSDN, чтобы это работало, пространство имен, имя и проводная подпись должны быть идентичны во всех сервисах. Что-то похоже, что они не совпадают, так что это хорошее место, чтобы начать искать.