在C#webservice中使用NameValueCollection不会产生XML可序列化错误

前端之家收集整理的这篇文章主要介绍了在C#webservice中使用NameValueCollection不会产生XML可序列化错误前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
当我尝试“添加Web引用”到我的ASMX代理项目时收到此错误消息:
**"To be XML serializable,types which inherit from ICollection must have an    implementation of Add(System.String) at all levels of their inheritance hierarchy. System.Collections.Specialized.NameValueCollection does not implement Add(System.String)"**

我需要将名称 – 值对传递给我的Web服务,这就是我想出的:

public class FileService : System.Web.Services.WebService
{

    [WebMethod]
    public string UploadFile(byte[] incomingArray,string FileName,long FileLengthInBytes,NameValueCollection nvcMetaData)

我现在意识到我需要帮助改变这一点(我是C#的新手和.Net框架的这一部分).如果我可以使用它,我的Web服务将需要由ColdFusion调用(现在我使用.aspx页面调用Web服务).因此无论我想出什么方式来传递可变数量的NAME-VALUE对,我都需要它可由CF调用.提前致谢.

解决方法

作为替代方案,您可以只定义一个简单的NameValue类并接收一个数组.
public class NameValue
{
   public string Name{get;set;}
   public string Value{get;set;}
}

[WebMethod]
public string UploadFile(byte[] incomingArray,NameValue[] nvcMetaData)

如果在客户端有一个NameValueCollection,您可以轻松映射到您的类型.检查我在question中发布的样本

猜你在找的C&C++相关文章