2013-05-20 59 views
0

當我從我的web應用程序調用WCF服務時,出現上述錯誤。無法將類型'ServiceReference1.Videos []'隱式轉換爲'System.Collections.Generic.IList <Videos>

的代碼如下

我實例化我的WCF服務:

ServiceReference1.VideosClient objService = new ServiceReference1.VideosClient(); 

創建我的泛型集合的新實例,所以我可以填充值

IList<Videos> videoItem = new List<Videos>(); 
videoItem = objService.GetVideoDetailsById(id); 
txtTitle.Text = videoItem[0].Title.ToString(); ; 
txtDescription.Text = videoItem[0].Description.ToString(); 
txtRentalPrice.Text = Convert.ToString(videoItem[0].RentalPrice); 

然而,當我致電GetVideoDetailsByID服務的方法我收到錯誤消息

無法隱式轉換類型「ServiceReference1.Videos []」到「System.Collections.Generic.IList

我已經經歷了一些類似的帖子消失,但不能似乎找到我的問題的解決方案。 我的服務參考屬性顯示我的收藏類型爲System.Collection.Generic.List

請幫忙。 非常感謝。

回答

0

在面值它似乎是在GetVideoDetailsById()方法返回一個數組,你有沒有試圖改變你的代碼是這樣的:

Videos[] videoItem; 
videoItem = objService.GetVideoDetailsById(id); 

或者,使它很容易,只是坍縮成單行並使用var

var videoItem = objService.GetVideoDetailsById(id); 
+0

謝謝你的迴應。 – user2403365

+0

謝謝你的迴應。如果我使用var vid = objService.GetVideoDetailsById(id);那麼我該如何獲取方法返回的特定項目。例如,我想獲取方法調用返回的描述 – user2403365

+0

假設它返回一個數組,那麼其餘代碼應該按原樣工作。 – joshuahealy

0

默認情況下,「自動生成的」服務合同利用Array作爲集合類型。如果你想在你的客戶端代碼使用的列表中,您可以:

  • 更新您的服務引用(右擊>更新),並使用列表類型

  • videoItem = objService.GetVideoDetailsById(id).ToList();
+0

謝謝你的迴應。如果我使用下面的代碼,那麼我該如何獲得該方法返回的特定數據項。 var vid = objService.GetVideoDetailsById(id); – user2403365

+0

如果你的服務調用「objService.GetVideoDetailsById(id)」返回一個數組,你應該可以像查詢一樣查詢它,videoItem [0] .Description.ToString(); – cli

相關問題