我有WCF服务,其中包含来自LibW.dll(我的dll)中数据的列表。在主程序中,我还从LibW.dll获得了列表。

我从WCF服务返回清单

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


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

cont = e.Result;


哪里

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


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

怎么了?

最佳答案

假定e.ResultObservableCollection<T>,然后……即使您在服务中将其声明为List<IWeather>

看起来您还需要从object转换为IWeather-假设每个结果确实是一个IWeather。您可以始终将其复制到列表中,如下所示:

cont = e.Result.Cast<IWeather>().ToList();


...或更改变量类型,使其可以处理任何IList<IWeather>

10-04 18:53