Какие инструменты использовать для генерации сервисного кода из схем (аналог svcutil), если они не соответствуют требованиям DataContractSerializer - PullRequest
0 голосов
/ 02 декабря 2010

Мы работаем над SOA, как на стороне клиента (Silverlight), так и на стороне сервера (WCF), но с возможностью реализации клиентов сторонними разработчиками (.NET, Java и т. Д.). Мы используем WSDL-первый подход и хотим, чтобы наши классы интерфейса данных и сервисов (C #) автоматически генерировались из схем во время процесса сборки. Поэтому нам нужен код общих классов данных, который не будет регенерироваться для каждой службы для успешной компиляции.

Я попробовал утилиту svcutil , пытаясь сначала создать все классы контрактов данных из XSD с переключателем / dataContractOnly и скомпилировать их в отдельную библиотеку классов - на первом этапе . А затем для создания каждого кода интерфейса службы, исключая уже имеющиеся в библиотеке классы, с параметром / reference - второй этап .

Проблема в том, что наши схемы не соответствуют требованиям DataContractSerializer, поэтому svcutil не может создавать классы данных. Даже после того, как я использовал для этой цели утилиту xsd , я не могу использовать переключатель svcutil / reference на втором этапе, поскольку этот ключ работает только для классов DataContract. И это не относится к классам, сгенерированным утилитой xsd.

Итак, я что-то упустил с этими инструментами и есть ли способ использовать их в моей ситуации, или есть какие-либо другие инструменты для генерации классов данных и сервисных интерфейсов из схем XSD и WSDL, в случае, когда используются общие типы данных? используется несколькими сервисными интерфейсами? Или мы не должны ограничивать себя с помощью DataContract-совместимых схем? Какой подход вы используете для WSDL-первой разработки?

Ответы [ 2 ]

1 голос
/ 15 июня 2011

Да WSCF.Blue - это плагин VS, поскольку он поставляется, но исходный код доступен, и поэтому его можно перестроить в версию интерфейса командной строки, как то, что мы должны были сделать, без особых усилий, которые я мог бы добавить.

1 голос
/ 02 декабря 2010

Вы пробовали WCF.blue tool от codeplex? WSCF.blue - это набор инструментов, который облегчает разработку веб-сервисов с использованием подхода сначала контракта (в частности, сначала схемы). Это версия первоначального инструмента контракта веб-служб WCF.

Также есть прекрасная статья о контрактной разработке: http://msdn.microsoft.com/en-us/magazine/ee335699.aspx

...