2012-05-14 150 views
1

發送列表到Web服務後,我發現了一個錯誤。無法投類型的對象System.Collections.Generic.List`1 [System.Int32]爲鍵入「crmWebService.ArrayOfInt」

這是調用Web服務的代碼:

Dim sProgramInterest As New List(Of Integer)  
crmService.InsertProspectGetId(sProgramInterest.ToList) 

但我發現了這個錯誤。

無法強制'System.Collections.Generic.List`1 [System.Int32]'類型的對象鍵入'crmWebService.ArrayOfInt'。

參數由Web服務被接受的是:

ByVal sProgramInterest As List(Of Integer) 
+1

看起來像crmWebService.ArrayOfInt是一個自定義類型。你可以發佈它的定義嗎?右鍵單擊InsertProspectGetId並轉到定義。它的參數類型是ArrayOfInt,它的定義是否可以發佈? – Youssef

回答

3

與其說ToList的,叫ToArray

crmService.InsertProspectGetId(sProgramInterest.ToArray) 
+0

當我這樣做---我得到這個錯誤錯誤'整數的一維數組'類型的值不能轉換爲'crmWebService.ArrayOfInt' –

+1

@JeremyLewallen - 確定。我假設'ArrayOfInt'是一個整數數組似乎是不正確的。什麼是'crmWebService.ArrayOfInt'?它是如何定義的? – Oded

1

看來,服務接受整型數組,而不是爲int名單。這樣試試:

crmService.InsertProspectGetId(sProgramInterest.ToArray()) 
+0

我認爲你的答案是用C#。應該是'ToArray' for vb.net – Youssef

+0

@Youssef - 你錯了。 「ToArray」和「ToArray()」都在VB.NET中工作。當一個方法調用是無參數時,'()'在VB.NET中是可選的。 – Oded

+0

@Youssef:上次我使用VB.NET的時候是接受了兩種樣式 - 括號和沒有,所以它是可選的。國際海事組織醜陋和刪除VB.NET程序員的大腦。 – abatishchev

0

我認爲你必須做這樣的事情,

Dim sProgramInterest As New crmWebService.ArrayOfInt  
crmService.InsertProspectGetId(sProgramInterest) 

基於錯誤,參數必須是crmWebService.ArrayOfInt類型。您必須使用該類,而不是List(Of Integer)

相關問題