Ответ 1
Кажется, что проект сообщества WCFExtras на CodePlex обеспечивает обход ограничений .NET 3.5.
на основе спецификации WSDL из W3 существует возможность добавить теги "wsdl: document" к выходу WSDL, чтобы пользователи, использующие этот веб-сервис, имели более подробное объяснение/документацию об этом веб-сервисе.
Кто-нибудь знает, как заставить WCF использовать эти комментарии/описания или как написать код на С#, который эти комментарии экспортируются как часть wsdl?
Спасибо, Майкл
Кажется, что проект сообщества WCFExtras на CodePlex обеспечивает обход ограничений .NET 3.5.
http://msdn.microsoft.com/en-us/library/aa717040.aspx
Я думаю, что это будет делать то, что вы хотите, но оно будет работать только для клиентов .NET.
Если вы делаете свой дизайн/кодирование в классах С#, украшенных [ServiceContract] и [OperationContract], то я не знаю, как можно экспортировать документацию, которую вы можете иметь на эти классы и методы в WSDL, к сожалению.
Я тоже был потрясен - я ожидал, что какие-либо комментарии///моих классов и методов появятся в WSDL - не повезло: - (
Наше решение теперь таково: 1) мы создаем базовый "макет" нашего сервисного интерфейса со всеми операциями в С# 2) мы скомпилируем это в сборку 3) мы извлекаем метаданные (WSDL, XSD) из этой сборки, а затем выбрасываем С# "prototype" 4) мы вручную добавляем комментарии (xs: annotation/xs: documentation) к WSDL и XSD 5) с этого момента WSDL/XSD являются ведущими - и мы генерируем наш интерфейс из тех описаний
Громоздкий и раздражающий, но он работает достаточно хорошо для нас.
Я уверен, что VS2010/WCF 4.0 принесет нам немного больше поддержки в этой области!
Марк
WCF не будет делать это самостоятельно, к сожалению. Существуют точки расширяемости для генерации WSDL, которые вы можете использовать для достижения этого, по крайней мере частично: посмотрите IWSDLExportExtension интерфейс.
У меня есть небольшой пример о том, как реализовать на моем сайте простое расширение экспорта WSDL, которое может помочь вам начать работу.
[WebService(Namespace = "XXXXXXXXXXXXX", **Description**="V0.2.42")]
Описание поставьте все, что вы хотите в .NET 4.0, не знаете, какие версии... Вероятно, немного поздно в ответе, но ответы кажутся более сложными, чем требуется, чтобы добавить рекламный блок к WSDL, который видит только разработчик.