2011-02-07 6 views
1

Кто-нибудь сталкивался с проблемой с параметром Svcutil и/dconly, где он генерирует метаданные для КАЖДОГО типа данных в сборке, даже если он НЕ отмечен с атрибутом [DataContract()]? Он также, по-видимому, создает метаданные для типов, на которые ссылается только код, например XmlDictionaryReaderQuotas, даже если они не являются частью физической сборки, на которой я сгенерировал метаданные.SvcUtil и/dconly генерирует XSD для типов данных, не отмеченных атрибутом DataContract

Дополнительная информация: Использование версии SvcUtil .NET 4.0. Не имеет значения, пуст ли класс или нет. В командной строке для SvcUtil не указаны ссылки.

Командная строка:

"C: \ In Progress Работа (Перспективный) \ перспективному Сервер \ перспективному Сервер \ Управление \ Prospective.Server.Server.NET40.Debug.AnyCPU.dll"/NoLogo/т: метаданными/d: "C: \ In Progress Work (Предполагаемый) \ Предполагаемый сервер \ Предполагаемый сервер \ Управление"/dconly

ответ

0

Обходной порядок заключается в том, чтобы явно указать, какие XSD использовать. В моем случае это все равно может быть достаточным для превышения лимита символов для командной строки; вместо этого я написал код, который удаляет все дополнительные XSD и продолжает использовать * .xsd в команде SvcUtil. Однако это может быть сложно, поскольку требует подробного знания каждого пространства имен WCF.

Я опубликовал отчет об ошибке с Microsoft, поскольку это поведение не определено как правильное в любой из их общедоступной документации. Вы можете просмотреть отчет об ошибке и прочесть его здесь: http://connect.microsoft.com/wcf/feedback/details/641777/svcuil-with-datacontractonly-generates-xsds-for-all-types-in-assembly-regardless-of-datacontract-attributes

+0

Есть ли какие-либо успехи в решении этой проблемы? Вызвали такое же препятствие. –