加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – Method有一些无效的参数?

发布时间:2020-12-15 18:21:57 所属栏目:百科 来源:网络整理
导读:我正在以ArrayList的形式将数据从 Windows窗体发送到Web服务.在Web服务声明我的方法是这样的: [WebMethod]public int SaveSelectedOffers(ArrayList offers,int selectedRows){} 在Windows窗体中,点击按钮,我的代码是: private void offersAvailableSubmit
我正在以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" };

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读