2012-03-22 20 views
1

У меня есть служба WCF, которая содержит список с данными из LibW.dll (my dll). В основной программе у меня также есть список из LibW.dll.Невозможно неявно преобразовать тип System.Collections.ObjectModel.ObservableCollection <> в System.Collections.Generic.List <>

Я возвращаюсь список из 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

См. [Do i * have * использовать ObservableCollection в Silverlight WCF-клиенте?] (Http://stackoverflow.com/q/1911441/119477) –

ответ

5

Предположительно e.Result является ObservableCollection<T>, тогда ... даже если вы заявили об этом как List<IWeather> в вашем сервисе.

Похоже, что вы также нужно отливать из object в IWeather - предполагая, что каждый результат действительно являетсяIWeather. Вы всегда можете скопировать его в список, как это:

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

... или изменить тип переменной, поэтому он может справиться с любой IList<IWeather>.

+0

Теперь у меня есть ошибка = Невозможно преобразовать тип System.Collections. Generic.List в System.Collections.Generic.List

+0

@ Артём Царионов: Хорошо, с вашим исходным форматированием (которое я исправил) мы не могли видеть тип. Будет редактировать. –

3

Следует учитывать, что в настройках вашей сервисной ссылки (щелкните правой кнопкой мыши ссылку на службу, затем нажмите «Настроить справочную службу»), изменив тип коллекции «Наблюдаемая коллекция» на «System.Collections.Generic.List "

Смежные вопросы

 Смежные вопросы