Повторное использование существующих классов из другого справочника службы

Ситуация, с которой я работаю, субоптимальна, так что несите меня.

Мы должны потреблять внешний (не .NET) SOAP-webservices.
По какой-то причине каждый метод реализован в отдельном веб-сервисе с собственным WSDL.
Многие объекты, возвращаемые веб-службами, имеют тег точно такой же, как и имя, и пространство имен xml.

" Добавить ссылку на службы" используется, потому что:
- для этого используется внутренняя команда разработчиков
- мы хотели бы сохранить автоматическую ссылку "Обновить службу"

Вторая ссылка добавлена ​​с опцией "Повторное использование во всех ссылочных ассемблерах".
Все классы, однако, снова генерируются под новой ссылкой.

Есть ли способ повторно использовать классы из 1-й ссылки?

Ответ 1

Вы можете добавить несколько WSDL, если вы откроете свою ссылку Reference Reference.svcmap(чтобы найти ее, установите флажок "Показать все файлы" и разверните ссылку на службу) и отредактируйте ее вручную, вместо того, чтобы устанавливать URI WSDL через графический интерфейс. Например.

  <MetadataSources>
    <MetadataSource Address="http://localhost/example1.wsdl" Protocol="http" SourceId="1" />
    <MetadataSource Address="http://localhost/example2.wsdl" Protocol="http" SourceId="2" />
  </MetadataSources>

Когда у вас есть несколько WSDL в одном Service Reference, классы будут повторно использоваться по мере их описания, если они идентичны в разных WSDL. Если есть классы с тем же именем, но с разными определениями, один из них будет иметь суффикс '1', добавленный к его имени.