.NET GUI

.NET Community für WPF, Silverlight und mehr!
Willkommen bei .NET GUI. Anmeldung | Registrieren | Hilfe | Impressum | Forumsregeln
in Suchen

How-To: Web-Services in Silverlight synchron aufrufen

Letzter Beitrag 10-13-2009 14:16 von BFreakout. 0 Antworten.
Seite 1 von 1 (1 Treffer)
Beiträge sortieren: Zurück Weiter
  • 10-13-2009 14:16

    • BFreakout
    • Top 10 Mitwirkender
    • Registriert am 02-04-2009
    • Ingolstadt
    • Beiträge 115
    • Punkte 2.255
    • Moderator

    How-To: Web-Services in Silverlight synchron aufrufen

    Des öfteren kommt man in Situationen wo die Web-Service Kommunikation Synchron stattfinden muss. Als Beispiel wäre das die Methode, die den Web-Service aufruft, noch Informationen beinhaltet die mit dem Rückgabewerten vom Asynchronen Vorgang überprüft werden soll. Allerdings ist eine Synchrone Kommunikation mit Absicht nicht als Standard Aktiv. Das liegt daran, das die Silverlight Oberfläche sich sonst aufhängt solange der Server noch nicht antwortet. Das kann zum kompletten Absturz des Browsers führen und andere geöffnete Seiten mit beeinflussen.

    Daher gibt es einen einfachen Vorgang um so ähnlich wie "synchron" zu kommunizieren, und das geht mit Silverlight & Lambda:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    public void GetCustomers() 
    { 
         Proxy.GetCustomersCompleted += (sender, eventArgs) => 
            { 
                // Der Bereich wird aufgerufen wenn der Asynchrone Vorgang fertig ist...   
            }; 
         
         Proxy.GetCustomersAsync(); 
    }

    Die Asynchrone Anfrage wird in Zeile 8 gestellt. Wenn die Antwort vom Server folgt, wird der Bereich in Zeile 5 ausgeführt. Somit wäre die Kommunikation in einer Methode, als wäre es Synchron.
    Sollte dennoch eine richtige Synchrone Kommunikation erwünscht sein oder alternativen in Betracht gezogen werden, möchte ich auf den Blog-Eintrag von Stefan Lange hinweisen: http://www.st-lange.net/post/Web-Services-in-Silverlight-synchron-aufrufen.aspx

    Viel Spaß und viele Grüße,
    BFreakout

    DotNet-Blog.NET - Every day is an experience!, http://www.dotnet-blog.net

    • Beitragspunkte: 5
    • IP-Adresse ist Registriert
Seite 1 von 1 (1 Treffer)
Powered by Community Server (Commercial Edition)    69° - Internet-Agentur Nürnberg (ASP.NET, CMS, Webdesign)