Advanced  Services Web Services 2 Back Next Up Home

Erstellen eines C# Clients

Um einen Web Service Client zu erstellen muß man zuerst die Information in der vorher gezeigte WSDL-Datei auslesen und daraus die entsprechenden Klassen, Interfaces und Methoden für die Sprache generieren mit der man den angeboten Dienst nutzen will. Das wird hier durch Visual Studio erledigt.

Wir legen zunächst ein normales Konsolprojekt an.

csharp-webservice-client-01.jpg

Über den Eintrag Add Service Reference im Kontextmenü zu unserem Konsolprojekts erhalten wir den Add Service Reference Dialog.

csharp-webservice-client-02.jpg

Über den Button Advanced erhalten wir den Service Reference Settings Dialog.

csharp-webservice-client-03.jpg

Hier geht es über den Button Add Web Reference... weiter zum Add Web Reference Dialog. Hier könnte man im Feld URL die Adresse eintragen unter der der Web Service angeboten wird. Einfacher ist es aber unterhalb von Start Browsing for Web Services auf den ersten Link Web services in this solution zu klicken. Visual Studio sucht daraufhin nach einem Service im Solutionverzeichnis...

csharp-webservice-client-04.jpg

und findet unseren Web Service.

csharp-webservice-client-05.jpg

Wir brauchen jetzt nur noch den Link Service1 aktivieren und Visual Studio trägt alle wichtigen Daten selbst ein und aktiviert (endlich) den Add Reference Button. Wir werden gleich den unter Web reference name eingetragenen Namen in unserem Konsolprgramm brauchen (man könnte hier auch einen eigenen Namen eintragen, aber gegen den von Visual Studio gewählten Namen ist eigentlich nichts einzuwenden).

csharp-webservice-client-06.jpg

Unser Konsolprojekt hat nun alle Informationen um den angebotenen Service zu verwenden.

csharp-webservice-client-07.jpg

Wichtig ist nun der zusätzliche using-Eintrag using WebServiceConsoleClient.localhost. Damit ist der Zugriff auf den Service in drei Zeilen erledigt.

csharp-webservice-client-08.jpg

Über den Objektbrowser erfahren wir weitere Einzelheiten.

csharp-webservice-client-09.jpg

Im Namensraum WebServiceConsoleClient.localhost den VisualStudio angelegt hat gibt es eine Klasse Service1 die sich von System.Web.Services.Protocols.SoapHttpClientProtocol ableitet und diese enthält die Methode HelloWorld


Falls der Server nicht gestartet ist

In diesem Fall gibt es natürlich eine Exception, es handelt sich um eine System.Net.WebException, die wiederum durch eine darunterliegende System.Net.Sockets.SocketException ausgelöst wird. Unser kleiner CVlient erhält also noch einen try-catch-rahmen.

namespace WebServiceConsoleClient
{
   class Program
   {
      static void Main(string[] args)
      {
         try
         {
            Service1 webservice = new Service1();
            string result = webservice.HelloWorld();
            Console.WriteLine(result);
         }
         catch (System.Net.WebException ex)
         {
            Console.WriteLine("System.Net.WebException:: Verbindung zum Server kann nicht hergestellt werden.");
         }
         catch (Exception ex)
         {
            Console.WriteLine(ex);
         }
      }
   }
}

Valid XHTML 1.0 Strict top Back Next Up Home