Подтвердить что ты не робот

Добавление комментариев к WSDL-выходу из WCF/.Net

на основе спецификации WSDL из W3 существует возможность добавить теги "wsdl: document" к выходу WSDL, чтобы пользователи, использующие этот веб-сервис, имели более подробное объяснение/документацию об этом веб-сервисе.

Кто-нибудь знает, как заставить WCF использовать эти комментарии/описания или как написать код на С#, который эти комментарии экспортируются как часть wsdl?

Спасибо, Майкл

4b9b3361

Ответ 1

Кажется, что проект сообщества WCFExtras на CodePlex обеспечивает обход ограничений .NET 3.5.

Ответ 3

Если вы делаете свой дизайн/кодирование в классах С#, украшенных [ServiceContract] и [OperationContract], то я не знаю, как можно экспортировать документацию, которую вы можете иметь на эти классы и методы в WSDL, к сожалению.

Я тоже был потрясен - я ожидал, что какие-либо комментарии///моих классов и методов появятся в WSDL - не повезло: - (

Наше решение теперь таково: 1) мы создаем базовый "макет" нашего сервисного интерфейса со всеми операциями в С# 2) мы скомпилируем это в сборку 3) мы извлекаем метаданные (WSDL, XSD) из этой сборки, а затем выбрасываем С# "prototype" 4) мы вручную добавляем комментарии (xs: annotation/xs: documentation) к WSDL и XSD 5) с этого момента WSDL/XSD являются ведущими - и мы генерируем наш интерфейс из тех описаний

Громоздкий и раздражающий, но он работает достаточно хорошо для нас.

Я уверен, что VS2010/WCF 4.0 принесет нам немного больше поддержки в этой области!

Марк

Ответ 4

WCF не будет делать это самостоятельно, к сожалению. Существуют точки расширяемости для генерации WSDL, которые вы можете использовать для достижения этого, по крайней мере частично: посмотрите IWSDLExportExtension интерфейс.

У меня есть небольшой пример о том, как реализовать на моем сайте простое расширение экспорта WSDL, которое может помочь вам начать работу.

Ответ 5

[WebService(Namespace = "XXXXXXXXXXXXX", **Description**="V0.2.42")]

Описание поставьте все, что вы хотите в .NET 4.0, не знаете, какие версии... Вероятно, немного поздно в ответе, но ответы кажутся более сложными, чем требуется, чтобы добавить рекламный блок к WSDL, который видит только разработчик.