2

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

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

我不能手动编写这些函数。该类中大约有 50 个函数。但我无法得到这个异常的原因。我删除了类的构造函数。我检查了所有功能,从普通类执行时它们工作正常。它们都是公共功能。请告诉我这个问题的原因和解决方法。

4

1 回答 1

0

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

于 2013-09-21T17:26:35.253 回答