向asmx客户端和WCF客户端公开WCF服务
我们有一个WCF服务,它的操作接收数据契约对象的向asmx客户端和WCF客户端公开WCF服务,wcf,xml-serialization,asmx,datacontract,Wcf,Xml Serialization,Asmx,Datacontract,我们有一个WCF服务,它的操作接收数据契约对象的列表作为其参数,并返回不同数据契约对象的列表,例如 List<CheckOutResponse> ProcessCheckOut(List<CheckOutRequest> obj); List ProcessCheckOut(List obj); 这项服务目前正被一个WCF客户机使用,它工作得很好 我们现在需要将相同的服务公开给构建在.NET1.1上的遗留应用程序。我了解需要在服务的web.config中进行的绑定更改
列表
作为其参数,并返回不同数据契约对象的列表
,例如
List<CheckOutResponse> ProcessCheckOut(List<CheckOutRequest> obj);
List ProcessCheckOut(List obj);
这项服务目前正被一个WCF客户机使用,它工作得很好
我们现在需要将相同的服务公开给构建在.NET1.1上的遗留应用程序。我了解需要在服务的web.config
中进行的绑定更改,使用basichtp
绑定并设置正确的服务行为等
我的问题是数据契约。我相信.NET1.1客户机使用的是XMLSerializer
,这不能用于数据契约
我真的不想将数据契约更改为其他与.NET1.1兼容的复杂类型,因为这样我们就需要对现有的WCF客户端进行大量回归测试
有人找到了这个问题的解决方案吗?序列化应该没有问题。.NET 1.1客户端只会看到一个将值放入元素而不是属性的结构。对ASMX客户端使用
basicHttpBinding
——最后,消息会在网络上序列化为SOAP(XML)消息,NET 1.1 ASMX客户端将使用其可用的任何工具/算法/库对其进行反序列化(它不知道也不关心SOAP消息来自何处)