Построение приложения, которое полагается на стороннего поставщика, который имеет очень многословный набор 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-х?)