Frage

Szenario:

ich für einen Web-Service Silverlight 3.0 als Client verwenden.

Entwurf:

Der Server verfügt über eine Klasse mit dem Namen DeviceInfoService , die die grundlegende Funktionalität des Erhaltens der Liste der Geräte hat, bekommen die Eigenschaften der Geräte etc.

Wenn ich ein ASP.NET-Projekt öffnen und versuchen, einen Webverweis hinzufügen, kann ich eine Option finde eine „Web Reference“ hinzuzufügen. Nachdem ich die Web-Referenz auf diese Weise hinzufügen, ich bin die DeviceInfoService Klasse zugreifen können, indem sie das Objekt erstellt und dann ist es Methoden zugreifen.

Web-Referenz v / s-Service Referenz:

Coming to Silverlight: Wenn ich versuche, einen Dienstverweis hinzufügen, gibt es keine Möglichkeit, eine Web-Referenz hinzuzufügen. Möchten Sie Service-Referenz, funktioniert alles einwandfrei bis WSDL-Datei heruntergeladen wird. Die Leute sagen, dass ich zurück zu .NET 2.0 diese Option bekommen, aber wahrscheinlich nicht funktioniert in Silverlight .NET 2.0

Das Problem

Wenn ich jetzt versuchen, die Klasse DeviceInfoService zugreifen zu können, ich bin nicht in der Lage zu finden. Ich bekomme alle ist Interfaces - DeviceInfoServiceSoap und DeviceInfoServiceSoapChannel. Klassen genannt DeviceInfoServiceSoapClient.

Die Methoden GetHostedDevices und GetDeviceInfo sind nicht mehr verfügbar. Alles, was ich bekommen ist GetDeviceInfoRequest, GetDeviceInfoRequestBody, GetDeviceInfoResponse und GetDeviceInfoResponseBody.

gegoogelt ich viel, wie diese vier Klassen zu verwenden, nur nichts zu finden. Ich will diese zwei Klassen direkt wie in ASP.NET bekommen und nicht diejenigen Request Response-Typ.

War es hilfreich?

Lösung

Was ist Referenz Web in ASP.NET Dienstverweis in Silverlight entspricht.

Hier ist ein Beispiel dafür, wie einen Web-Service in Silverlight zu verwenden, z.B. die CDYNE Profanity Filter .

einen neuen Dienstverweis zu einem Projekt hinzufügen, URL: http: // ws .cdyne.com / ProfanityWS / Profanity.asmx? wsdl , lassen Sie den Namen als ServiceReference1.

Mit diesem Code hinter den Dienst nennen (die umgesetzt wurde asynchron sein):

public MainPage()
{
    InitializeComponent();

    string badText = "I wonder if the filter will filter this out: shit bad luck";
    ServiceReference1.ProfanitySoapClient client = new ServiceReference1.ProfanitySoapClient();
    client.ProfanityFilterCompleted += new EventHandler<ServiceReference1.ProfanityFilterCompletedEventArgs>(client_ProfanityFilterCompleted);
    client.ProfanityFilterAsync(badText, 0, false);            
}

void client_ProfanityFilterCompleted(object sender, ServiceReference1.ProfanityFilterCompletedEventArgs e)
{
    string cleanText = e.Result.CleanText;  // Web service callback is here
}

Und Sie haben einen Web-Service und läuft in Silverlight bekommen!

Andere Tipps

Sie klingen schrecklich, einige Konzepte verwirren über.

Wie wäre es Sie folgende Silverlight.Net Video beobachten und sehen, ob das hilft? Wie zum Verbrauchen WCF und ASP.NET Web Services in Silverlight

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