wsdl.exe /sharetypes

2020-02-14 04:17发布

I'm working with multiple third party webservices (from the same vendor) that appear to be using the same object structure server side. One of the services allows me to query a list of users by role, and another allows me to query a single user by ID. In order to get this to work the best way possible, the users returned from both services need to be able to be used interchangeably.

Enter wsdl.exe. I'm aware that /sharetypes does what I want it to do, however, when I generate my proxy, there end up still being multiple versions of the objects (i.e. Person, Person1, ...).

The command I'm executing is as follows:

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条回答
放荡不羁爱自由
2楼-- · 2020-02-14 04:37

According to the MSDN documentation for this to work, the namespace, name, and wire signature must be identical in all services. Something looks like they're not matching up so these are a good place to start looking.

查看更多
戒情不戒烟
3楼-- · 2020-02-14 04:42

The schema for DataExportService has tns and the target namespace defined as http://www.senior-systems.com/. The schema for UserProfileService has tns and the target namespace defined as http://senior-systems.com/.

Those are different, even if they happened to resolve to the same web server when used as a URL. XML namespaces are compared textually, not according to URL syntax. For example, http://senior-systems.com/ and http://senior-systems.com would be two different namespaces (hint: one is missing the trailing slash).

查看更多
登录 后发表回答