我正在以ArrayList的形式将数据从
Windows窗体发送到Web服务.在Web服务声明我的方法是这样的:
[WebMethod] public int SaveSelectedOffers(ArrayList offers,int selectedRows) { }
在Windows窗体中,点击按钮,我的代码是:
private void offersAvailableSubmit_Click(object sender,EventArgs e) { ArrayList options; options.Add("item 1"); options.Add("item 2"); options.Add("item 2"); //In this line of code it is showing error that Argument 1: cannot convert from 'System.Collections.ArrayList' to 'object[]' int rowsAffected = serviceCaller.SaveSelectedOffers(options,rowCount); }
>选项的数据类型是ArrayList,在Web服务中我也使用ArrayList类型的变量来保存这个值,那么为什么会出现这个错误呢?
>将参数发送到Web服务是否正确?或者还有其他方法吗?
解决方法
Web服务无法传递像ArrayList这样的复杂类型,或者至少没有一些配置,所以只需简化您的Web服务即可.把它改成这个:
public int SaveSelectedOffers(object[] offers,int selectedRows)
private void offersAvailableSubmit_Click(object sender,EventArgs e) { object[] options = new object[3]; options[0] = "item 1"; options[1] = "item 2"; options[2] = "item 2"; int rowsAffected = serviceCaller.SaveSelectedOffers(options,rowCount); }
如果你正在寻找更简洁的东西,那么初始化选项的另一个选择是这样的:
object[] options = new object[] { "item 1","item 2","item 3" };
原文地址:https://www.jb51.cc/csharp/98307.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。