2009-03-12 2 views
1

나는 혼란 스럽다. Silverlight 프로젝트가 현재 실행 중이며 조롱 한 모델의 서버 목록을 표시합니다 (MVVM 패턴을 따르고 있습니다).오른쪽이 아닙니다 <type>?

public class GetServersCompletedEventArgs : EventArgs 
{ 
    public Exception Error {get; set;} 
    public IEnumerable<LicenseServer> Results {get; private set;} 

    public GetServersCompletedEventArgs(Exception error, IEnumerable<LicenseServer> results) 
    { 
     this.Error = error; 
     this.Results = results; 
    } 
} 

public delegate void GetServersCompletedEvent(GetServersCompletedEventArgs e); 

public interface IDataService 
{ 
    void GetServers(); 

    event GetServersCompletedEvent GetServersCompleted; 
} 

당신이 볼 수 있듯이 CompletedEventArgs이는 IEnumerable로 결과를 반환 다음과 같이

인터페이스는 코딩된다.

내가 가진 문제는 <LicenseServer>을 가짜 데이터로 스텁링하거나 실제 데이터 (ala ado.net 데이터 서비스)의 결과를 채울 수있는 방식으로 정의하는 것입니다.

로컬 클래스 LicenseServer를 만들었지 만 서비스는 항상 다른 유형의 LicenseServer를 반환합니다. 나는 서비스 참조에서 LicenseServer입니다과 같이

convert Unable to cast object of type 'DataServiceOrderedQuery[LicenseMon.LMonServiceReference.License_Server]' to type 'System.Data.Services.Client.DataServiceQuery`1[LicenseMon.Model.LicenseServer]

내가 내 모델 클래스

이유는 데 문제가 정의한 LicenseServer입니다까지 변환 할 수 없습니다 :

는 오류가 발생합니다? 클래스를 독립적으로 개발하고 라이브 데이터베이스와 내부적으로 생성 된 데이터간에 전환 할 수 있어야합니까? 나는 이것을 잘못된 방향으로 접근하고 있는가?

웹 리소스 (SOAP, WCF 또는 ADO.NET 데이터 서비스)이 소요되는 경우 모든 코드 샘플, 설명은, 링크 등

답변

2

종종 가장 도움이 될 것입니다,하는 별도의 클라이언트 프록시 클래스가 생성됩니다. 비슷한 레이아웃이지만 로컬 유형으로 자동 변환되지는 않습니다. 일부 시스템은 유형 재사용 (WCF 등)을 지원하지만 전부는 아닙니다.

부분 클래스에 변환 또는 인터페이스를 추가 할 수 있습니다. 그러나 일반적으로 이것을 분리 된 유형으로 취급해야합니다.