2012-03-22 1 views
1

LibW.dll (my dll)의 데이터가 포함 된 WCF 서비스가 있습니다. 주 프로그램에는 LibW.dll의 목록도 있습니다. System.Collections.ObjectModel.ObservableCollection <>을 System.Collections.Generic.List <>로 암시 적으로 변환 할 수 없습니다.

나는

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

다음은

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

cont = e.Result; 

가치를 메소드의 결과를 설정하려고 WCF 서비스에서 목록을 반환하지만 같은 오류가있어 암시 적으로 변환 할 수 없습니다. System.Collections.ObjectModel.ObservableCollection<object>' to 'System.Collections.Generic.List<NavigationGadget.IWeather>

무엇이 잘못 되었나요?

+0

[Silverlight WCF 클라이언트에서 ObservableCollection을 사용합니까?] (http://stackoverflow.com/q/1911441/119477) –

답변

5

아마도 e.ResultObservableCollection<T>입니다. 서비스에 List<IWeather>으로 신고 한 경우에도 마찬가지입니다. 각각의 결과를 가정 정말 IWeather - 당신은 또한 필요가 object에서 IWeather에 캐스팅 같은

는 것 같습니다.

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

을 ... 또는 어떤 IList<IWeather>을 처리 할 수 ​​있도록 변수 유형을 변경 : 당신은 항상 는 다음과 같이 목록에에게 그것을 복사 할 수 있습니다.

+0

이제 오류가 발생했습니다. System.Collections 형식을 변환 할 수 없습니다. Generic.List to System.Collections.Generic.List

+0

@ 좋아, 원래 서식 (내가 수정 한)으로 관련 유형을 볼 수 없었습니다. 편집 할 것입니다. –

3

서비스 참조 구성에서 서비스 참조를 마우스 오른쪽 단추로 클릭 한 다음 "서비스 참조 구성"을 클릭하고 "Observable Collection"에서 "System.Collections.Generic.List"로 컬렉션 유형을 변경하십시오. "

관련 문제