Создание приложения, основанного на стороннем поставщике, имеющем очень подробный набор служб SOAP (мы говорим о 50+ файлах WSDL). Однако каждый отдельный WSDL имеет множество общих объявлений типов. При создании клиентского кода с помощью wsdl.exe использовался флаг / sharedtypes, который объединял бы дублирующиеся записи, если тип был найден несколько раз.
Когда я пытаюсь сгенерировать свой клиентский код, я бомбардирую эти перекрывающиеся типы, которые сторонняя организация включает во все свои файлы WSDL.
svcutil /t:code /importxmltypes [mypath]/*.wsdl
В результате появляются сообщения об ошибках со ссылкой на коллизии типов. Например, пара примеров сообщений об ошибках ниже:
Error: There was an error verifying some XML Schemas generated during export:
The simpleType 'http://common.soap.3rdparty.com:CurrencyNotation' has already been
declared.
Error: There was an error verifying some XML Schemas generated during export:
The complexType 'http://common.soap.3rdparty.com:NumberFormat' has already been
declared.
У меня нет контроля над выводом WSDL. Я не хочу редактировать WSDL вручную из-за боязни ошибки, которая ломается во время выполнения, и было бы очень трудно отследить наше редактирование файлов WSDL. Не говоря уже о том, что существует 50 файлов WSDL с диапазоном 200-1200 строк XML. (Напомните мне еще раз, почему мы думали, что SOAP был великим спасением для всех нас в конце 90-х?)