我試圖將使用SOAP協議的客戶端應用程序的整數通用列表傳遞給Web服務。將generic.list轉換爲ArrayOfInt以通過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
只是一個評論。 IList接口不具有在列表類中實現的ToArray方法。如果您使用的是框架3.5,您也可以使用每個IEnumerable 實例中的ToArray擴展方法。 –
Fede
2010-02-25 15:02:32
而不是將列表轉換爲數組,是否有可能序列化列表傳輸? – Unflux 2010-02-25 15:10:21
@Abs - 你將不得不編寫自己的序列化來做到這一點。同樣,爲什麼要發明輪子,那麼SOAP是如何收集的呢? – Oded 2010-02-25 15:38:34