Каков наилучший способ загрузки всех файлов WSDL, предоставляемых службой WCF? - PullRequest
17 голосов
/ 13 ноября 2008

Каков наилучший способ загрузки всех файлов WSDL, предоставляемых службой WCF?

Например, корневой файл WSDL ссылается на следующие другие файлы WSDL:

<xsd:import schemaLocation="http://localhost:80/?xsd=xsd0" namespace="http://tempuri.com"/>
<xsd:import schemaLocation="http://localhost:80/?xsd=xsd1" namespace="http://tempuri.com"/>

В идеале можно было бы автоматизировать загрузку, чтобы при каждом изменении WSDL было легко распространять файлы клиенту или включать в документ / SDK.

Ответы [ 4 ]

31 голосов
/ 23 декабря 2009

Между тем, disco.exe считается устаревшей технологией Microsoft.

Вы можете использовать svcutil.exe /t:metadata, чтобы достичь того же в возрасте WCF. Дополнительные преимущества - поддержка дополнительных функций, например WS-Policy.

Сохранить схему из URL:

svcutil /t:metadata http://host/pathtomy.svc?wsdl

Сохранить схему из сборки, например, в автоматической сборке:

svcutil /t:metadata c:\wcfweb\pathToWcfServiceAssembly.dll

6 голосов
/ 13 ноября 2008

Если у вас есть служба, другой интересный вариант, который вы могли бы изучить, - это использование поведения FlatWSDL Кристиана Вейера , которое заставит WCF сгенерировать все в одном документе WSDL, что должно упростить вам задачу. распространять его.

3 голосов
/ 13 ноября 2008

Похоже, что Microsoft предоставляет Disco.exe для этого.

2 голосов
/ 05 октября 2010

Существует простой фрагмент кода, который позволяет загружать WSDL и все принадлежащие XSD-файлы для автономного использования (например, для генерации кода).

Обновление

Блог, в котором был показан фрагмент кода, больше не доступен. К счастью, Пабло Диез создал небольшой проект на основе моего поста в блоге и загрузил его на github. Сейчас доступно здесь: https://github.com/pablod/xsd-downloader

...