Заставить svcutil забирать документацию из файлов C #? - PullRequest
2 голосов
/ 12 марта 2009

Люди,

Я создаю новую службу WCF и начал с моего интерфейса службы. Выглядит примерно так:

   public interface ISomethingService
    {
        /// <summary>
        /// some description
        /// </summary>
        /// <version>2.13.0</version>
        /// <copyright>2009 by myself</copyright>
        /// <author>Marc Scheuner</author>
        /// <param name="request">The request object</param>
        [OperationContract]
        SomethingResponse GetList(SomethingRequest request);
    }

Теперь я также создал несколько контрактов данных в другом файле, описывающем сообщения SomethingRequest и SomethingResponse.

Я скомпилировал свой проект и запустил svcutil.exe для извлечения метаданных (WSDL и XSD) из DLL - но я не могу понять, есть ли способ передать все мои комментарии и объяснения в WSDL / XSD в / узлы.

Я ослеп за еще одним неясным параметром svcutil.exe или действительно нет способа автоматически сгенерировать эту документацию в метаданных ??

РЕДАКТИРОВАТЬ: хорошо, основываясь на ответе Марка Гравелла, комментарии и строки документации отсутствуют ни в скомпилированной DLL, ни в протоколе обмена метаданными MEX (жаль!).

SO THEN: Как вы документируете свои услуги WCF, если вам нужно предоставить третьей стороне информацию, необходимую для доступа к вашей услуге? Существует ли инструмент «NService» или «Sandcastle for WCF», который сканировал бы мою библиотеку служб WCF и создавал WSDL и XSD из исходного кода, включая аннотации ??

Не могу найти множество инструментов и способов сделать это - к моему большому удивлению, если честно ...

Марк

Ответы [ 2 ]

3 голосов
/ 12 марта 2009

svcutil.exe использует API-интерфейс mex и имеет доступ только к подмножеству метаданных. Комментарии не включены (ни IIRC, это [DescriptionAttribute] в значительной степени).

Возможно, вам придется полагаться на внешнюю документацию (то есть страницу справки / мертвое дерево). Еще один вариант (хотя он нарушает ряд чистых правил SOA) - отправлять сущности / интерфейсы в dll + xml; svcutil (и IDE) могут повторно использовать совпадающие типы из существующих сборок.

0 голосов
/ 27 ноября 2009

Может быть, это поможет: http://msdn.microsoft.com/en-us/library/aa717040.aspx

Работает и со svcutil.

...