Share via


Exemplarische Vorgehensweise: Aufrufen von XML-Webdiensten in Windows Forms mit Hilfe von Visual J#

Ein neuer Aspekt von Visual Studio sind XML-Webdienste, die den Austausch von Meldungen mit Standardprotokollen, wie HTTP, XML, XSD, SOAP und WSDL, in einer lose verknüpften Umgebung ermöglichen. Die Meldungen können strukturiert und typisiert oder lose definiert sein. Da Webdienste auf Standardprotokollen basieren, können Webdienstanwendungen mit einer Vielzahl von Implementierungen, Plattformen und Geräten kommunizieren. Weitere Informationen finden Sie unter XML-Webdienste in verwaltetem Code.

Mit Webdiensten kann die Funktionalität von Windows Forms erweitert werden. Windows Forms mit Webdiensten zu verbinden, ist genauso einfach wie das Aufrufen von Webdienstmethoden, die auf einem Server ausgeführt werden, der anschließend die Ergebnisse des Methodenaufrufs zurückgibt.

Es gibt zwei Arten von Webdienstmethoden: synchrone und asynchrone. Wenn synchrone Webdienstmethoden aufgerufen werden, wartet der Aufrufer, bis der Webdienst reagiert, und fährt erst dann mit seinen Operationen fort. Wenn asynchrone Webdienstmethoden aufgerufen werden, können Sie den aufrufenden Thread auch verwenden, während Sie darauf warten, dass der Webdienst reagiert. Dadurch werden die vorhandenen Threads in der Clientanwendung effektiv genutzt. Weitere Informationen zum Arbeiten mit synchronen und asynchronen Webdienstmethoden finden Sie unter Zugreifen auf XML-Webdienste in verwaltetem Code.

Synchrone Webdienstmethoden

Beim Aufruf einer synchronen Webdienstmethode wird die Methode aufgerufen und anschließend auf die Verarbeitung auf dem Server gewartet. Nachdem ein Wert zurückgegeben wurde, wird der restliche Code im Windows Form ausgeführt.

So erstellen Sie einen XML-Webdienst

  1. Erstellen Sie eine Webdienstanwendung. Weitere Informationen finden Sie unter Erstellen von XML-Webdiensten in verwaltetem Code. Akzeptieren Sie den Standardnamen WebService1.

  2. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf die ASMX-Datei, und wählen Sie Code anzeigen.

  3. Erstellen Sie eine Webdienstmethode für Additionen. Die folgende Webdienstmethode addiert zwei ganze Zahlen und gibt die Summe zurück:

    // Visual J#
    /** @attribute WebMethod() */
    public int WebAdd(int x, int y)
    {
       return x + y;
    }
    
  4. Erstellen Sie eine weitere Webdienstmethode für Multiplikationen. Die folgende Webdienstmethode multipliziert zwei ganze Zahlen und gibt das Produkt zurück:

    // Visual J#
    /** @attribute WebMethod() */
    public int WebMultiply(int x, int y) 
    {
       return x * y;
    }
    
  5. Klicken Sie im Menü Erstellen auf Projektmappe erstellen. Sie können auch zu der in diesem Projekt erstellten ASMX-Datei navigieren, um mehr über Webdienste zu erfahren. Der Webdienst kann nun in einem Windows Form aufgerufen werden.

So rufen Sie einen XML-Webdienst synchron auf

  1. Erstellen Sie eine neue Windows-Anwendung. Weitere Informationen finden Sie unter Erstellen eines Windows-Anwendungsprojekts.

  2. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf den Knoten Verweise des Projekts, und klicken Sie anschließend auf Webverweis hinzufügen.

    Das Dialogfeld Webverweis hinzufügen wird geöffnet.

  3. Geben Sie den folgenden Webdienst-URI in das Feld Adresse ein, und drücken Sie die EINGABETASTE:

    https://localhost/WebService1/Service1.asmx
    

    Hierbei handelt es sich um den URI des Webdienstes, den Sie in der vorhergehenden Prozedur erstellt haben. Die Webmethoden WebAdd und WebMultiply werden im linken Bereich des Dialogfelds Webverweis hinzufügen angezeigt.

  4. Klicken Sie auf Verweis hinzufügen.

  5. Fügen Sie über die Toolbox drei TextBox-Steuerelemente und zwei Button-Steuerelemente hinzu. Die Textfelder werden für die numerischen Werte und die Schaltflächen für die Berechnungen sowie zum Aufrufen der Webdienstmethoden verwendet.

  6. Legen Sie die Eigenschaften dieser Steuerelemente wie folgt fest:

    Steuerelement Eigenschaft Text
    TextBox1 Text 0
    TextBox2 Text 0
    TextBox3 Text 0
    Button1 Text Hinzufügen
    Button2 Text Multiplizieren
  7. Klicken Sie mit der rechten Maustaste auf das Formular, und wählen Sie Code anzeigen.

  8. Erstellen Sie eine Instanz des Webdienstes als Klassenmember. Sie benötigen den Namen des Servers, auf dem Sie den obigen Webdienst erstellt haben.

    // Visual J#
    localhost.Service1 MathServiceClass = new localhost.Service1();
    
  9. Erstellen Sie einen Ereignishandler für das Click-Ereignis des Button1-Steuerelements. Einzelheiten finden Sie unter Erstellen von Ereignishandlern im Windows Forms-Designer.

    // Visual J#
    private void button1_Click (Object sender, System.EventArgs e)
    {
       // Create instances of the operands and result.
       int x, y, z;
       // Parse the contents of the text boxes into integers.
       x = Integer.parseInt(textBox1.get_Text());
       y = Integer.parseInt(textBox2.get_Text());
       // Call the WebAdd Web service method from the instance of the Web service.
       z = MathServiceClass.WebAdd(x, y);
       textBox3.set_Text(""+z);
    }
    
  10. Erstellen Sie auf dieselbe Weise einen Ereignishandler für das Click-Ereignis des Button2-Steuerelements, und fügen Sie folgenden Code hinzu:

    // Visual J#
    private void button2_Click (Object sender, System.EventArgs e)
    {
       // Create instances of the operands and result.
       int x, y, z;
       // Parse the contents of the text boxes into integers.
       x = Integer.parseInt(textBox1.get_Text());
       y = Integer.parseInt(textBox2.get_Text());
       // Call the WebAdd Web service method from the instance of the Web service.
       z = MathServiceClass.WebMultiply(x, y);
       textBox3.set_Text(""+z);
    }
    
  11. Drücken Sie F5, um die Anwendung auszuführen. Geben Sie Werte in die beiden ersten Textfelder ein. Wenn Sie auf die Schaltfläche Addieren klicken, wird im dritten TextBox-Steuerelement die Summe der beiden Werte angezeigt. Wenn Sie auf die Schaltfläche Multiplizieren klicken, wird im dritten TextBox-Steuerelement das Produkt der beiden Werte angezeigt.

    Hinweis   Beim ersten Aufruf eines Webdienstes dauert die Verarbeitung auf dem Server einige Zeit, da der Webdienst auf dem Server instanziiert wird. Dies sollten Sie berücksichtigen, wenn Sie auf eine Schaltfläche in der Anwendung klicken. Diese Verzögerung wird im folgenden Abschnitt behandelt.

Asynchrone Webdienstmethoden

Beim Aufruf von asynchronen Webdienstmethoden wird die Anwendung ausgeführt, während auf die Antwort des Webdienstes gewartet wird. Dadurch werden die Ressourcen in der Clientanwendung effektiv genutzt. Sie können sehr viele Ressourcen einsparen, wenn Sie Webdienste auf diese Weise in Windows-Anwendungen implementieren.

Einzelheiten dazu finden Sie unter Asynchrones Zugreifen auf einen XML-Webdienst in verwaltetem Code.

Siehe auch

Zugreifen auf XML-Webdienste in verwaltetem Code | XML-Webdienste in verwaltetem Code | Empfehlungen zu Windows Forms und Web Forms | Webverweise | Generieren eines XML-Webdienstproxys | Windows-Anwendungen als Clients | Exemplarische Vorgehensweisen für Windows Forms