无法在c#中将数组传递给Web服务

时间:2014-12-26 04:15:24

标签: c# asp.net arrays web-services

朋友我试图从我的控制台应用程序传递一个数组到asp webservice方法错误是这样的 “最好的重载方法有一些无效的参数”

下面是控制台端,我传递数组的函数给出错误。

int[] t = new int[6];
ServiceReference1.WebService1SoapClient client=new ServiceReference1.WebService1SoapClient();
for (int i = 0; i < 7; i++)
{
  t[i] = Convert.ToInt32(Console.ReadLine());
}
client.bublesort(t);    //Here is the error in passing to webservice method

另一方面,我的WEBSERVICE方法代码就是这样     int temp = 0;

[WebMethod]
public int[] bublesort(int[] arr)      
{
    for (int i = 0; i < 5; i++)
    {
        for (int j = i + 1; j < 6; j++)
        {
            if (arr[i] > arr[j])
            {
                temp = arr[i];
                arr[i] = arr[j];
                arr[j] = temp;
            }
        }
    }
    return arr;
}

1 个答案:

答案 0 :(得分:2)

您的问题是您已创建ASMX Web服务并尝试添加为服务参考。

如果在客户端检查方法签名,则不接受整数数组。而不是它有ServiceReference1.ArrayOfInt类对象。

ServiceReference1.WebService1SoapClient client=new ServiceReference1.WebService1SoapClient();
for (int i = 0; i < 7; i++)
{
  t[i] = Convert.ToInt32(Console.ReadLine());
}
ServiceReference1.ArrayOfInt item = new ServiceReference1.ArrayOfInt();
item.AddRange(t);
ServiceReference1.ArrayOfInt result = client.bublesort(item);
foreach (var i in result)
{
  Console.WriteLine(i);
}

我认为这可以解决您的问题。