朋友我试图从我的控制台应用程序传递一个数组到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;
}
答案 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);
}
我认为这可以解决您的问题。