无法将类型'ServiceReference1.Videos []'隐式转换为'System.Collections.Generic.IList <videos> </videos>

时间:2013-05-20 22:05:38

标签: c# implicit

当我从我的网络应用程序调用我的WCF服务时,我收到了上述错误。

代码如下

我实例化我的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

请帮忙。 非常感谢。

2 个答案:

答案 0 :(得分:0)

从表面看,似乎GetVideoDetailsById()方法返回一个数组,您是否尝试将代码更改为:

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

或者,为了让它变得非常简单,只需折叠到一行并使用var

 var videoItem =  objService.GetVideoDetailsById(id);

答案 1 :(得分:0)

默认情况下,“自动生成”服务合同使用Array作为集合类型。如果您想在客户端代码中使用list,您可以:

  • 更新您的服务参考(通过右键单击&gt;更新)并使用列表类型

  • videoItem = objService.GetVideoDetailsById(id).ToList();
相关问题