2013-05-20 91 views
0

我總是得到一個鑄造錯誤InvalidCastException的,而從我的應用程序傳遞數據時,我ASMX Web服務調用Web服務

我的web服務代碼

Public Function SetAlterLogTrx(ByVal qsTrx As List(Of String)) As String 
    Dim oStatus As New LogAlterStatusDsp 

    Dim iRec As Integer = 0 
    Using DBCONN As New SqlConnection() 
     Dim strConnString As String = ConfigurationManager.ConnectionStrings("Conn").ConnectionString 
     DBCONN.ConnectionString = sDBConnString 

     If qsTrx.Count = 0 Then 
      Return "Failed" 
     Else 
      Dim sQueryList As Array = qsTrx.ToArray 
      For Each sQuery As String In sQueryList 
       Using UpdateOutCommand As New SqlCommand(sQuery, DBCONN) 
        Try 
         With DBCONN 
          .Open() 
          iRec = UpdateOutCommand.ExecuteNonQuery() 
          .Close() 
         End With 
        Catch ex As Exception 
         Return "Failed" 
        End Try 
       End Using 
      Next 
      Return "Ok" 
     End If 
    End Using 

End Function 

我的客戶端代碼

dim qsArray() as string 
    'This array has many lines 
    Using oSvc As New AnfaEngine.AnfaWSSoapClient 
     Dim svcReplay As AnfaEngine.LogAlterStatusDsp 
     Dim oList As New List(Of String) 
     oList.AddRange(qsArray.Cast(Of String).ToList) 
     svcReplay = oSvc.SetAlterLogTrx(oList) 
    End Using 

我總是得到這個錯誤信息:

無法投射類型爲'System.Collections.Generic.List`1 [System.String]'的對象以鍵入'WS.ArrayOfString'。

我該怎麼做才能解決此問題。

+0

這是一箇舊的ASMX Web服務,或者IT WCF? –

+0

這是ASMX網絡服務 –

回答

-1

我解決我的問題,在客戶端代碼如下:

dim qsArray() as string 
'This array has many lines 
Using oSvc As New AnfaEngine.AnfaWSSoapClient 
    Dim svcReplay As AnfaEngine.LogAlterStatusDsp 
    Dim oList As New List(Of AnfaEngine.ArrayOfString) 
    oList.AddRange(qsArray.Cast(Of String).ToList) 
    svcReplay = oSvc.SetAlterLogTrx(oList) 
End Using 
+0

請考慮向其他人解釋原因和解決方案,而不是僅僅複製和粘貼工作代碼而無需解釋。 –

0

當您使用「添加服務引用」引用服務時,請嘗試使用「高級」選項卡指定使用List(Of T)作爲集合類型。

如果這不起作用,那麼你只需發送服務的接收。

+0

我將集合類型更改爲System.Generic.Collection.list,並且錯誤仍然彈出 –

+0

在這種情況下,您只需要提供它想要的內容。 WS.ArrayOfString是什麼樣的?這就是你必須通過的。 –

+0

Honstly我不知道什麼「ArrayOFString」來自這是有趣的事情:( –