SvcUtil и / dconly генерируют XSD для типов данных, НЕ помеченных атрибутом DataContract - PullRequest
2 голосов
/ 07 февраля 2011

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

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

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

"C: \ Выполняется работа (перспективная) \ Предполагаемый сервер \ Предполагаемый сервер \ Управление \ Prospective.Server.Server.NET40.Debug.AnyCPU.dll "/ nologo / t: metadata / d:" C: \ Выполняемая работа (предполагаемая) \ Предполагаемый сервер \ Предполагаемый сервер \ Управление "/ dconly

1 Ответ

0 голосов
/ 11 февраля 2011

Обходной путь должен явно указать, какой 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

...