ASP.Net Webservice接收未定义数量的键值对

时间:2012-01-13 18:24:24

标签: c# .net web-services asmx

我一直在与一些表单处理提供商合作,他们似乎有一个键值对数据的通用接收器。我试图这样做,但我尝试使用的每个数据结构都实现了一个接口,因此无法序列化容器以便在web方法中使用。

我甚至尝试使用基础'对象'数据类型 - 没有成功

[WebMethod] 
        public void processResponse( object lead ){
            Dictionary<string, string> DList = (Dictionary<string,string>) lead;

如何使用此Web服务接收未定义数量的键值对,以便我可以对接收的数据执行业务逻辑并使用统一的输入方法智能地路由数据?静态类型的类在这种情况下不起作用,因为不同类型的引导具有不同数量的字段/属性。

2 个答案:

答案 0 :(得分:0)

切换到WCF,默认情况下使用能够序列化DataContractSerializer键值对的Dictionary<T,K>类。

您的服务的基本结构将完全相同,并且使用BasicHttpBinding,您将拥有基于Http和Soap的几乎相同的通信协议。在WCF教程上花30分钟,你几乎不想回到旧的.asmxes。

答案 1 :(得分:0)

我最终做的是添加一个通用处理程序。我将QueryString参数复制到一个Dictionary中,并使用那里的值。它设置了数据收集的中心点,我能够从那里应用我的业务逻辑 - 似乎符合我想要的目的。