2011-12-22 4 views
0

У нас есть служба 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.

Кто-нибудь разработал решение этой проблемы?

+0

Используйте «basicHttpBinding» для своих клиентов ASMX. В конце сообщения эти сообщения сериализуются в сообщения SOAP (XML) на проводе, а клиент ASMX .NET 1.1 десериализует это с помощью любых инструментов/алгоритмов/библиотек, которые он имеет доступный для него (он не знает и не заботится о том, откуда это сообщение SOAP) –

ответ

2

Не должно быть никаких проблем с сериализацией. Клиент .NET 1.1 просто увидит структуру, которая помещает значения в элементы вместо атрибутов.

Смежные вопросы