Frage

Ich bin verwirrt. Ich habe ein Silverlight-Projekt bekommt, die derzeit läuft und zeigt eine Liste der Server von meinem verspottet Modell (ich bin nach dem MVVM Muster).

Die Schnittstelle wird wie folgt codiert:

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;
}

Wie Sie der CompletedEventArgs sehen gibt die Ergebnisse als IEnumerable.

Das Problem, das ich habe ist die Definition <LicenseServer> so, dass ich es mit gefälschten Daten Stummel kann oder die Ergebnisse von realen Daten füllen (ala ado.net Datendienste).

Ich habe eine lokale Klasse License erstellt, aber der Service immer wieder eine andere Art von License.

Ich erhalte eine Fehlermeldung:

  

konvertieren kann nicht Objekt des Typs werfen   'DataServiceOrderedQuery [LicenseMon.LMonServiceReference.License_Server]'   tippen   ‚System.Data.Services.Client.DataServiceQuery`1 [LicenseMon.Model.LicenseServer]

Was ich als License aus dem Dienst las Referenz kann nicht über auf die License I umgewandelt werden, in meiner Modellklasse definiert habe

Warum habe ich Probleme? Sollte ich nicht der Lage sein, meine Klassen unabhängig zu entwickeln und zwischen einer Live-Datenbank und meine intern erzeugte Daten wechseln können? Bin ich dies für die falsche Art und Weise nähern?

Jede Codebeispiele, Erklärungen, Links usw. wäre sehr hilfreich

War es hilfreich?

Lösung

Oft, wenn eine Web-Ressource (SOAP, WCF oder ADO.NET Data Services) raubend, ein getrennt Client-Proxy-Klasse erzeugt. Dies wird sich ähnliches Layout, hat aber keine automatische Konvertierung in Ihrem lokalen Typ. Einige Systeme unterstützen Typ Wiederverwendung (WCF usw.), aber nicht alle.

Sie können eine Umwandlung oder eine Schnittstelle zu der partiellen Klasse hinzuzufügen; aber in der Regel sollten Sie behandeln das als eine separate Art.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top