我有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>
怎么了?
答案 0 :(得分:5)
大概e.Result
是ObservableCollection<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;