Как получить файл-заглушку WCF с учетом типа файла wsdl + xds? - PullRequest
7 голосов
/ 23 января 2010

Я понимаю, что это базовая тема, но никогда не делал этого прежде, чем начать с wsdl.

Мне вручают файл wsdl и связку xsd с определениями типов. Я понятия не имею, были ли они созданы из службы WCF (я полагаю, так из-за формата с разделением), но мне нужно создать службу WCF, которая реализует контракт.

Вопрос: Как получить интерфейс контракта на обслуживание?

Я знаю о wsdl.exe и svcutil.exe - но не слишком хорошо знаю, что к чему. Думаю, после этого все, что осталось, - это выполнение контракта на обслуживание.

Любая помощь приветствуется!

P.S. У меня был еще один вопрос по этому поводу, но я пытался поместить слишком много материала в один и тот же вопрос - поэтому давайте пока будем проще.

1 Ответ

13 голосов
/ 23 января 2010

У вас есть два варианта:

Опция 1: Используйте утилиту svcutil.exe в командной строке. Он должен быть установлен в вашем каталоге C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bin (или что-то подобное, в зависимости от вашей машины и ОС)

Использовать svcutil -? для списка всех многих параметров. В основном, в самой простой форме, используйте:

svcutil  (name of your service).wsdl (name of your datafile).xsd

, и это создаст соответствующий (name of your service).cs C # файл с контрактами на обслуживание и данные, а также пример файла конфигурации.

Результирующий файл * .cs (или * .vb, если вы хотите VB.NET) будет содержать контракт на обслуживание (методы, вытекающие из WSDL) и контракты на данные (часть данных, поступающая из XSD). к вашим услугам.

Вариант 2: Используйте диалоговое окно «Добавить ссылку на службу» в Visual Studio (на узле «Ссылки» в обозревателе решений) и просто введите имя файла WSDL:

Add Service Reference dialog

Это создаст ссылку на службу, которая в основном совпадает с выводом утилиты svcutil.exe, плюс несколько вспомогательных классов и файлов для Visual Studio.

К сожалению, в обоих случаях при импорте создается ужасно перегруженный конфигурационный файл, что, вероятно, является одной из причин, по которой многие программисты считают WCF ужасно сложным - на самом деле это не так, но эти два инструмента импорта просто ужасно плохо справляются с задачей. создание базовой конфигурации для вас .... не позволяйте этому вас пугать!

Если Добавить ссылку на службу для WSDL не преобразует автоматически все релевантные и необходимые файлы XSD, вам может потребоваться добавить их в ваш проект, а затем использовать что-то вроде XSD2Code , чтобы преобразовать их в C # (или VB.NET) классы для вас.

wsdl.exe - устаревшая утилита для преобразования файла WSDL в заглушку ASMX (ASP.NET webservice) - больше не используйте ее, используйте svcutil.exe или справочник по службам Visual Studio для WCF.

Что касается того, как создать правильную и минимальную конфигурацию WCF, посмотрите ТВ-шоу DotNet Rocks # 122 с Мигелем Кастро под названием Extreme WCF . Miguel представляет отличный способ структурировать ваши проекты WCF и создать столько конфигураций, сколько действительно необходимо (и, таким образом, его можно понять намного лучше, чем сгенерированный беспорядок с помощью svcutil).

...