2009-03-12 1 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にオーバー変換することはできませんか?クラスを独立して開発して、ライブデータベースと内部で生成されたデータを切り替えることはできませんか?私はこれに間違った方法で近づいていますか? 別のクライアントプロキシクラスが生成され、Webリソース(SOAP、WCFまたはADO.NETデータサービス)を消費したときに

任意のコードサンプル、説明、リンクなどは、多くの場合、最も有用

答えて

2

だろう。これはレイアウトは似ていますが、ローカルタイプへの自動変換はありません。システムによっては、タイプ再使用(WCFなど)がサポートされていますが、すべてではありません。

部分クラスにコンバージョンまたはインターフェイスを追加できます。一般的には、これを別のタイプとして扱うべきです。

関連する問題