Использование нашего собственного файла xsd в сервисе WCF

У нас есть файл xsd, в котором контракты уже определены. Мы используем xsd.exe генерировать классы для нашей службы WCF и использовать XmlSerializerFormat снова для нашего веб-сервиса.

Мне кажется, что это странная вещь - заставить WCF генерировать новый XSD для классов, которые xsd.exe сгенерировано для нас, в то время как у нас уже есть наше определение XSD прямо для взятия..

В то время как xsd.exe делает хорошую работу по созданию классов для нас, это также упрощает сложные типы, как вы можете видеть в моем предыдущем вопросе; это означает, что xsd на самом деле немного меняется, когда генерирует классы и снова используется в веб-сервисе; проблема ArrayOfStringXXX..

Можем ли мы сказать службе WCF использовать наш собственный файл xsd для своего контракта вместо генерации нового контракта на основе того, что предоставляет xsd.exe?

Что я пробовал:

  • Я уже посмотрел этот пример: пример интерфейса IWsdlExportExtension, который выглядит многообещающим, но я не смог заменить xsd в методе экспорта, потому что он никогда не вызывался.

TL; DR: Можем ли мы указать наш сервис WCF на наш собственный файл xsd, вместо того, чтобы позволить ему генерировать свой собственный?

Спасибо

1 ответ

Вы можете использовать такие инструменты, как WSCF.blue, чтобы сгенерировать классы контрактов данных из файла XSD. У меня есть опыт из этого, и он работает нормально для большинства случаев. Смотрите этот блог для хорошего объяснения.

Есть и другие инструменты, которые позволяют это, см. Этот вопрос для некоторых предложений.

Кажется, в Visual Studio 2012 также появилась новая опция для этого, см. Документацию. Я не проверял это сам.

Этот метод разработки сначала называется контрактом, поэтому вы найдете еще больше информации в Google:-)

Другие вопросы по тегам