Mog*_*gli 6 c# web-services winforms
我将数据从Windows窗体发送到Web服务的形式ArrayList.在Web服务声明我的方法是这样的:
[WebMethod]
public int SaveSelectedOffers(ArrayList offers, int selectedRows)
{
}
Run Code Online (Sandbox Code Playgroud)
在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);
}
Run Code Online (Sandbox Code Playgroud)
选项的数据类型是ArrayList在Web服务中我也使用ArrayList变量类型来保存此值,那么为什么会出现此错误?
将参数发送到Web服务是否正确?或者还有其他方法吗?
Web服务无法传递复杂类型ArrayList,或者至少没有一些配置,因此只需简化Web服务即可.把它改成这个:
public int SaveSelectedOffers(object[] offers, int selectedRows)
Run Code Online (Sandbox Code Playgroud)
无论如何,你可以看到它是如何生成的,然后像这样调用它:
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);
}
Run Code Online (Sandbox Code Playgroud)
初始化的另一个选择options,如果你正在寻找更简洁的东西,将是这样的:
object[] options = new object[] { "item 1", "item 2", "item 3" };
Run Code Online (Sandbox Code Playgroud)