无法隐式转换类型System.Collections.ObjectModel.ObservableCollection<>到System.Collections.Generic.List<>

时间:2012-03-22 21:38:20

标签: c# wcf

我有WCF服务,其中包含来自LibW.dll(我的dll)的数据的List。在主程序中,我也有来自LibW.dll的列表。

我从WCF服务返回列表

[OperationContract]
public List<IWeather> Final()
{
    return returner;
}

然后尝试将方法的结果设置为值

cont = e.Result;

其中

List<LibW.IWeather> cont=new List<LibW.IWeather>();

但我有这样的错误 无法隐式转换类型System.Collections.ObjectModel.ObservableCollection<object>' to 'System.Collections.Generic.List<NavigationGadget.IWeather>

怎么了?

2 个答案:

答案 0 :(得分:5)

大概e.ResultObservableCollection<T>然后......即使您已在服务中将其声明为List<IWeather>

看起来 需要从object投射到IWeather - 假设每个结果 <{1}}。您可以随时复制到列表中,如下所示:

IWeather

...或更改您的变量类型,以便它可以处理任何cont = e.Result.Cast<IWeather>().ToList();

答案 1 :(得分:3)

要考虑的一件事是在服务引用的配置中(右键单击服务引用,然后单击&#34;配置服务引用&#34;),从&#34; Observable更改集合类型收集&#34;到&#34; System.Collections.Generic.List&#34;