Как генерировать .NET классы с комментариями из WSDL и XSD - PullRequest
4 голосов
/ 23 декабря 2011

Есть несколько XSD и WSDL.Я хочу сгенерировать код C # из них.Я использовал svcutil.exe, но он не генерирует XML-комментарии из аннотаций XSD:

<annotation>
    <documentation>VERY USEFULL DOCUMENTATION</documentation>
</annotation>

Я хочу, чтобы этот файл был сгенерирован:

public class SomeData
{
    /// <summary>
    /// VERY USEFULL DOCUMENTATION
    /// </summary>
    public string SomeField
    {...}
}

Другой вопрос: как заставить svcutil.exe для создания одного файла на класс?(Я знаю, что могу использовать рефакторинг из Resharper для перемещения классов в отдельные файлы, но мне не нравится это решение)

Итак, как сгенерировать несколько файлов (один файл на класс) с XML-комментариями из XSDи WSDL

Ответы [ 2 ]

4 голосов
/ 13 июня 2012

Вы можете использовать WCFExtras + http://wcfextrasplus.codeplex.com/.

  1. Сделать WCFExtras.dll видимым для svcutil.exe (например, поместив их в один каталог)
  2. добавьте этот раздел в app.config клиентского приложения или поместите в новый файл конфигурации и вызовите svcutil с параметром / svcutilConfig

     <configuration>
      <system.serviceModel>
        <client>
          <metadata>
            <wsdlImporters>
              <extension type="WCFExtras.Wsdl.Documentation.XmlCommentsImporter, WCFExtras" />
            </wsdlImporters>
          </metadata>
        </client>
      </system.serviceModel>
    </configuration>
    

пример командной строки, где configfile.xml - это файл конфигурации выше: SvcUtil.exe [URL-адрес службы] / svcutilConfig: [путь к configfile.xml]

1 голос
/ 09 мая 2014

Я только что узнал о надстройке xsd2Code visual studio. Он делает именно то, что вам нужно, с текстом аннотации / документации Xsd, перемещенным в итоговый тег документации c # xml.

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

Скотт Краудер

...