将普通类转换为Web服务类时System.NotSupportedException的原因

时间:2013-08-11 20:11:01

标签: c# .net web-services c#-4.0 c#-3.0

我正在尝试将普通( .cs )类转换为Web服务( .asmx.cs )类。我不是那么专业的网络服务和转换它我只是将这个类的每个功能复制到 Service1.asmx.cs Web服务类,并添加[WebMethod]在所有功能。但问题是,当我手工编写这些函数时,它正在工作,但是当我只是复制粘贴剩余的函数并在其上添加[WebMethod]时,它显示了我

  

System.NotSupportedException:无法序列化成员   System.Exception.Data类型为System.Collections.IDictionary,因为   它实现了IDictionary。

我不能手工编写这些功能。该类中约有50个函数。但我无法得到这个例外的原因。我删除了类的构造函数。我检查了所有的功能,它们在正常课程中执行时工作正常。它们都是公共职能。请告诉我原因和解决方案。

1 个答案:

答案 0 :(得分:0)

无论服务技术(我从asmx开始并转移到WCF),IDictionary都不是通过服务接口返回的可行的东西,特别是如果您的端点是基于SOAP或http的。通过服务接口输入或输出的对象必须是可序列化的,IDictionary不是。