svcutil не генерирует сложный тип, который иногда оборачивает массив другого типа с помощью / xmlserializer - PullRequest
1 голос
/ 15 февраля 2011

У меня есть объявленный элемент "RecordRefSet" в базовых типах XSD; это контейнерный элемент для элементов RecordRef. На элемент «RecordRefSet» ссылаются в различных местах набора WSDL.

Когда мой первый проект генерирует код из этих WSDL и XSD, сгенерированный код включает в себя класс «RecordRefSet», который используется в разных местах.

Но когда мой второй проект генерирует код из подмножества этих WSDL и XSD, сгенерированный код не включает класс с именем "RecordRefSet" и вместо этого напрямую использует массивы "RecordRef" в тех местах, где первый проект использует экземпляры Класс "RecordRefSet".

Я хочу знать, что определяет, когда SVCUTIL решает сгенерировать класс "RecordRefSet" и когда он решает использовать массивы "RecordRef" напрямую.

Я проверил, что он запускает одну и ту же версию SVCUTIL с одинаковыми параметрами командной строки (генерация контрактов на обслуживание, XMLSerializer) в обоих случаях. Единственное отличие состоит в том, что первый проект включает все мои файлы WSDL и XSD, генерируя больший общий объем кода, а второй проект использует подмножество файлов WSDL и XSD.

1 Ответ

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

Я не знаю точных сведений о SvcUtil, но если вы добавите атрибут [KnownType (typeof (YourType)]) в ваш класс, он сообщит прокси-генератору, какие типы использует сервис, и в соответствии с этим он должен сгенерировать Класс RecordRefSet для вас каждый раз

...