У нас есть служба WCF, которая имеет операции, которые принимают в качестве их параметров объекты контрактов данных и возвращают различных объектов контракта данных, например.Вызвать службу WCF клиенту asmx и клиенту WCF
List<CheckOutResponse> ProcessCheckOut(List<CheckOutRequest> obj);
Эта услуга в настоящее время используется клиентом WCF и отлично работает.
Теперь нам нужно предоставить одну и ту же услугу устаревшему приложению, основанному на .NET 1.1. Я понимаю изменения привязки, которые мне нужно внести в службе web.config
, используйте привязку basicHttp
и установите правильное поведение службы и т. Д.
Моя проблема заключается в контрактах с данными. Я считаю, что клиенты .NET 1.1 используют XMLSerializer
, и это не может работать с контрактами данных.
Я действительно не хочу менять контракты данных на некоторые другие сложные типы .NET 1.1, потому что тогда нам понадобится загрузка регрессионного тестирования с существующим клиентом WCF.
Кто-нибудь разработал решение этой проблемы?
Используйте «basicHttpBinding» для своих клиентов ASMX. В конце сообщения эти сообщения сериализуются в сообщения SOAP (XML) на проводе, а клиент ASMX .NET 1.1 десериализует это с помощью любых инструментов/алгоритмов/библиотек, которые он имеет доступный для него (он не знает и не заботится о том, откуда это сообщение SOAP) –