WCF -> Websphere Integration Developer и полиморфизм

У меня есть служба.NET WCF, которая предоставляет объект, который использует полиморфизм.

Очевидно, что Websphere Integration Developer не может справиться с этим должным образом (я не разработчик Websphere), кроме как путем добавления всех полей всех возможных полиморфизмов и использования перечисления или тому подобного, чтобы сказать, что это объект такого-то и такого-то типа.

Я не могу поверить, что IBM создала продукт, который не поддерживает полиморфизм! Итак... Кто-нибудь может объяснить, как с этим справиться, или указать ресурсы, которые я могу передать?

2 ответа

Это может не быть проблемой, но вы должны знать, что веб-сервисы, как правило, не поддерживают виртуальные методы. Таким образом, они не поддерживают полиморфизм.

На самом деле, веб-сервисы не являются объектно-ориентированными вообще. Они все о XML, который не является объектно-ориентированным. Любое сходство с классами с методами и свойствами является плодом воображения ваших инструментов - в частности, инструменты, которые создают прокси-классы, смотрят на (XML) описание веб-службы и создают классы, которые более или менее похожи на то, что описано.

Иногда больше, а иногда меньше.

Проблема в том, что ваш клиент знает о вашем сервисе только через контракт или wsdl.

Wsdl просто определяет входные и выходные данные методов в вашем контракте (а также контракты данных, используемые этими методами) - он не предоставляет ни одного из базовых классов и т. Д. Класса обслуживания (или любого из контрактов данных) Ваш клиент будет звонить.

Дело не в том, что WebSphere не может справиться с полиморфизмом, скорее, wsdl не может выразить его так, как вы могли бы ожидать.

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