将generic.list转换为ArrayOfInt,以便通过SOAP传输到Web服务

我正在尝试使用SOAP协议将一个通用的整数列表从客户端应用程序传递给Web服务。

当我尝试将列表作为参数传递给Web服务中声明的Web方法时,我收到错误“无法从generic.list转换为ArrayOfInt”。

我该如何解决这个问题?

// web service method [WebMethod(CacheDuration = 30, Description = "Returns the calculated sum value of all numbers supplied in the list")] public int CalculateListSum(int[] list) { int _sum = 0; foreach (int _val in list) { _sum += _val; } return _sum; } // client app buton click event private void btnRun_Click(object sender, EventArgs e) { string str = this.tbValues.Text; // clear the list ClearIntList(); // take the textbox input, format and add to the List PopulateIntList(str); WSCalculate.CalculateSoapClient client = new WSCalculate.CalculateSoapClient(); int[] _int_array = this._int_list.ToArray(); // the line below is generating the error int _result = client.CalculateListSum(_int_array); this.tbResult.Text = _result.ToString(); } 

错误1’WFCalculate.WSCalculate.CalculateSoapClient.CalculateListSum(WFCalculate.WSCalculate.ArrayOfInt)’的最佳重载方法匹配具有一些无效参数WFCalculate \ Form1.cs 58 27 WFCalculate

错误2参数’1’:无法从’int []’转换为’WFCalculate.WSCalculate.ArrayOfInt’WFCalculate \ Form1.cs 58 51 WFCalculate

嘿Abs,以为你可能想查看我的post,因为我认为我们有完全相同的问题…(可能是相同的课程大声笑)我设法解决它

SOAP不了解列表和集合,但理解数组。

将整数列表转换为整数数组:

 int[] intArr = myList.ToArray(); 

并通过它来代替。

更新:

看起来Web服务期待WFCalculate.WSCalculate.ArrayOfInt ,因此您需要将列表转换为该列表并将其传递通过。

未经测试:

 WFCalculate.WSCalculate.ArrayOfInt myClientArray = (WFCalculate.WSCalculate.ArrayOfInt)myList.ToArray(); int _result = client.CalculateListSum(myClientArray);