2009-10-21 27 views
0

我試圖通過List<UploadQueue>類型的列表對象爲WCF SOAP相同的參數類型的 方法,我得到的錯誤:無法從「列表<T>」轉換爲「T []」

Cannot Convert from 'System.Collections.Generic.List' to 'WebAPI.Upload.UploadQueue[]'

因爲我的WCF方法的(如下圖)參數類型爲List<UploadQueue>我不明白這一點:

IService.DoUpload(List<UploadQueue> request) 

這裏是所謂的「DoUpload」返回上面的錯誤代碼。

List<UploadQueue> results = new List<UploadQueue>(); 
    HttpPostedFile m_objFile = default(HttpPostedFile); 
    int m_objFlag = default(int); 
    Guid m_objGuid = Guid.NewGuid(); 
    DateTime m_objDate = DateTime.Now; 

    try 
    { 
     if (Request.Files.Count > 0) 
     { 
      for (var j = 0; i <= (Request.Files.Count - 1); j++) 
      { 
       m_objFile = Request.Files[j]; 

       if (!(m_objFile == null | string.IsNullOrEmpty(m_objFile.FileName) | m_objFile.ContentLength < 1)) 
       { 
        results.Add(new UploadQueue(
         m_objGuid, 
         m_objFlag, 
         m_objFile.ContentLength, 
         m_objFile.FileName, 
         m_objDate) 
        ); 

       } 

      } 
     } 

    } 
    catch (Exception ex) 
    { 
     //handle error 
    } 

    retParam = upload.DoUpload(results); 

想法?謝謝。

回答

13

在您的客戶端項目中,您需要右鍵單擊服務參考並選擇「配置服務參考」。在配置屏幕上的數據類型部分,您需要將集合類型設置爲System.Collections.Generic.List而不是System.Array。

+0

不錯的一個。謝謝。 – 2009-10-21 20:12:46

+0

不客氣。我花了一段時間才弄清楚了。 – 2009-10-21 23:10:42

+0

謝謝你 - 幫助我! – Tommy 2014-02-10 15:35:27

1

嘗試執行results.ToArray()。這可能會解決它。

upload.DoUpload(results.ToArray()); 

問題是,肥皂服務說它想要一個對象數組,而不是一個列表。從WSDL構建代理類時,它將其轉換爲它可以滿足作爲數組的服務需求的最基本對象。

1
retParam = upload.DoUpload(results.ToArray()); 

...或類似的。

相關問題