Случай: у меня есть набор файлов xsd, которые определяют общие типы, используемые в определениях WSDL (Header, ApplicationError). Каждый веб-сервис добавляет рядом с конкретными типами сервиса один или несколько из этих общих типов.
При создании прокси для служб я продолжаю получать копии этих общих типов для каждого прокси службы, поэтому я желаю поместить их в общую библиотеку и использовать / ссылку для включения этих типов. Я не мог заставить это работать.
Во-первых, генерация прокси и включение всех * .xsd нормально работает, и контракты генерируются. Тогда использование svcutil per xsd с параметром / dconly не работает. Оба / XmlSerializer как / DataContractSerializer. Работает только / importXmlType (или xsd.exe).
Затем, если я помещаю их в проект класса, добавляю сгенерированный код, компилирую и использую его для параметра / reference, я все равно получаю код, сгенерированный для этих типов.
Даже если я использую классы, созданные для прокси, они все равно не распознаются svcutil.
Кто-нибудь имеет опыт работы с этим шаблоном и, возможно, сталкивался с такими же проблемами?
Сообщения об ошибках для XmlSerializer как DataContractSerializer svcutil / dconly / ser: XmlSerializer ApplicatieFout-v0200-b03.xsd
Ошибка: введите «ApplicatieFout» в пространстве имен «http://schemas.customer.nl/ApplicatieFout-v0200», который не может быть импортирован. Форма для элемента FoutCode должна быть квалифицирована. Или измените схему, чтобы типы можно было сопоставить с типами контрактов данных или использовать ImportXmlType или использовать другой сериализатор.
Если вы используете параметр / dataContractOnly для импорта типов контрактов данных и получаете это сообщение об ошибке, рассмотрите возможность использования вместо этого xsd.exe. Типы, сгенерированные xsd.exe, могут использоваться в Windows Communication Foundation после применения атрибута XmlSerializerFormatAttribute в вашем контракте на обслуживание. В качестве альтернативы рассмотрите возможность использования параметра / importXmlTypes для импорта этих типов как типов XML для использования с атрибутом DataContractFormatAttribute в контракте службы.