Freigeben über


Gewusst wie: Verwenden eines Windows Communication Foundation-Clients

Dies ist die letzte von sechs Aufgaben, die zum Erstellen eines grundlegenden Windows Communication Foundation (WCF)-Diensts und eines Clients, der den Dienst aufrufen kann, erforderlich sind. Eine Übersicht über alle sechs Aufgaben finden Sie im Thema Lernprogramm "Erste Schritte".

Nachdem der Windows Communication Foundation (WCF)-Proxy erstellt und konfiguriert wurde, kann eine Clientinstanz erstellt und die Clientanwendung kompiliert und für die Kommunikation mit einem WCF-Dienst verwendet werden. In diesem Thema werden Verfahren zur Erstellung und Verwendung eines WCF-Clients beschrieben. Von dieser Prozedur werden drei Aktionen ausgeführt:

  1. Ein WCF-Client wird erstellt.

  2. Die Dienstoperationen werden vom erstellten Proxy aufgerufen.

  3. Nach Abschluss des Operationsaufrufs wird der Client beendet.

Der in diesem Verfahren besprochene Code wird in dem Beispiel im Anschluss für das Verfahren bereitgestellt. Der Code in dieser Aufgabe muss in der Main()-Methode der generierten Program-Klasse im Clientprojekt platziert werden.

So verwenden Sie einen Windows Communication Foundation-Client

  1. Erstellen Sie eine EndpointAddress-Instanz der Basisadresse des Diensts, der aufgerufen wird, und erstellen Sie dann ein WCF Client-Objekt.

    ' Step 1: Create an endpoint address and an instance of the WCF Client.
    Dim epAddress As New EndpointAddress("https://localhost:8000/ServiceModelSamples/Service/CalculatorService")
    Dim Client As New CalculatorClient(New WSHttpBinding(), epAddress)
    
    //Step 1: Create an endpoint address and an instance of the WCF Client.
    CalculatorClient client = new CalculatorClient();
    
  2. Rufen Sie die Clientvorgänge aus dem Client heraus auf.

    'Step 2: Call the service operations.
    'Call the Add service operation.
    Dim value1 As Double = 100D
    Dim value2 As Double = 15.99D
    Dim result As Double = Client.Add(value1, value2)
    Console.WriteLine("Add({0},{1}) = {2}", value1, value2, result)
    
    'Call the Subtract service operation.
    value1 = 145D
    value2 = 76.54D
    result = Client.Subtract(value1, value2)
    Console.WriteLine("Subtract({0},{1}) = {2}", value1, value2, result)
    
    'Call the Multiply service operation.
    value1 = 9D
    value2 = 81.25D
    result = Client.Multiply(value1, value2)
    Console.WriteLine("Multiply({0},{1}) = {2}", value1, value2, result)
    
    'Call the Divide service operation.
    value1 = 22D
    value2 = 7D
    result = Client.Divide(value1, value2)
    Console.WriteLine("Divide({0},{1}) = {2}", value1, value2, result)
    
    // Step 2: Call the service operations.
    // Call the Add service operation.
    double value1 = 100.00D;
    double value2 = 15.99D;
    double result = client.Add(value1, value2);
    Console.WriteLine("Add({0},{1}) = {2}", value1, value2, result);
    
    // Call the Subtract service operation.
    value1 = 145.00D;
    value2 = 76.54D;
    result = client.Subtract(value1, value2);
    Console.WriteLine("Subtract({0},{1}) = {2}", value1, value2, result);
    
    // Call the Multiply service operation.
    value1 = 9.00D;
    value2 = 81.25D;
    result = client.Multiply(value1, value2);
    Console.WriteLine("Multiply({0},{1}) = {2}", value1, value2, result);
    
    // Call the Divide service operation.
    value1 = 22.00D;
    value2 = 7.00D;
    result = client.Divide(value1, value2);
    Console.WriteLine("Divide({0},{1}) = {2}", value1, value2, result);
    
  3. Rufen Sie für den WCF-Client die Close- Funktion auf, und warten Sie, bis der Benutzer die EINGABETASTE drückt, um die Anwendung zu beenden.

    ' Step 3: Closing the client gracefully closes the connection and cleans up resources.
    Client.Close()
    
    Console.WriteLine()
    Console.WriteLine("Press <ENTER> to terminate client.")
    Console.ReadLine()
    
    //Step 3: Closing the client gracefully closes the connection and cleans up resources.
    client.Close();
    
    
    Console.WriteLine();
    Console.WriteLine("Press <ENTER> to terminate client.");
    Console.ReadLine();
    

Beispiel

Das folgende Beispiel zeigt, wie ein WCF-Client erstellt wird, wie die Vorgänge des Clients aufgerufen werden und wie der Client geschlossen wird, sobald der Vorgangsaufruf abgeschlossen ist.

Kompilieren Sie den generierten WCF-Client und das folgende Codebeispiel in eine ausführbare Datei mit dem Namen Client.exe. Vergessen Sie nicht, beim Kompilieren des Codes auf System.ServiceModel zu verweisen.

Imports System
Imports System.Collections.Generic
Imports System.Text
Imports System.ServiceModel


Module Client

    Sub Main()
        ' Step 1: Create an endpoint address and an instance of the WCF Client.
        Dim epAddress As New EndpointAddress("https://localhost:8000/ServiceModelSamples/Service/CalculatorService")
        Dim Client As New CalculatorClient(New WSHttpBinding(), epAddress)

        'Step 2: Call the service operations.
        'Call the Add service operation.
        Dim value1 As Double = 100D
        Dim value2 As Double = 15.99D
        Dim result As Double = Client.Add(value1, value2)
        Console.WriteLine("Add({0},{1}) = {2}", value1, value2, result)

        'Call the Subtract service operation.
        value1 = 145D
        value2 = 76.54D
        result = Client.Subtract(value1, value2)
        Console.WriteLine("Subtract({0},{1}) = {2}", value1, value2, result)

        'Call the Multiply service operation.
        value1 = 9D
        value2 = 81.25D
        result = Client.Multiply(value1, value2)
        Console.WriteLine("Multiply({0},{1}) = {2}", value1, value2, result)

        'Call the Divide service operation.
        value1 = 22D
        value2 = 7D
        result = Client.Divide(value1, value2)
        Console.WriteLine("Divide({0},{1}) = {2}", value1, value2, result)

        ' Step 3: Closing the client gracefully closes the connection and cleans up resources.
        Client.Close()

        Console.WriteLine()
        Console.WriteLine("Press <ENTER> to terminate client.")
        Console.ReadLine()

    End Sub
End Module
using System;
using System.Collections.Generic;
using System.Text;
using System.ServiceModel;

namespace ServiceModelSamples
{

    class Client
    {
        static void Main()
        {
            //Step 1: Create an endpoint address and an instance of the WCF Client.
            CalculatorClient client = new CalculatorClient();


            // Step 2: Call the service operations.
            // Call the Add service operation.
            double value1 = 100.00D;
            double value2 = 15.99D;
            double result = client.Add(value1, value2);
            Console.WriteLine("Add({0},{1}) = {2}", value1, value2, result);

            // Call the Subtract service operation.
            value1 = 145.00D;
            value2 = 76.54D;
            result = client.Subtract(value1, value2);
            Console.WriteLine("Subtract({0},{1}) = {2}", value1, value2, result);

            // Call the Multiply service operation.
            value1 = 9.00D;
            value2 = 81.25D;
            result = client.Multiply(value1, value2);
            Console.WriteLine("Multiply({0},{1}) = {2}", value1, value2, result);

            // Call the Divide service operation.
            value1 = 22.00D;
            value2 = 7.00D;
            result = client.Divide(value1, value2);
            Console.WriteLine("Divide({0},{1}) = {2}", value1, value2, result);

            //Step 3: Closing the client gracefully closes the connection and cleans up resources.
            client.Close();
            

            Console.WriteLine();
            Console.WriteLine("Press <ENTER> to terminate client.");
            Console.ReadLine();

        }
    }
}

Stellen Sie sicher, dass der Dienst ausgeführt wird, bevor Sie versuchen, den Client zu verwenden. Weitere Informationen finden Sie unter Gewusst wie: Hosten und Ausführen eines grundlegenden Windows Communication Foundation-Diensts.

Klicken Sie mit der rechten Maustaste im Projektmappen-Explorer auf Client, und wählen Sie Debuggen und anschließend Neue Instanz starten aus.

Add(100,15.99) = 115.99
Subtract(145,76.54) = 68.46
Multiply(9,81.25) = 731.25
Divide(22,7) = 3.14285714285714
Press <ENTER> to terminate client.

Wenn diese Ausgabe angezeigt wird, haben Sie das Lernprogramm erfolgreich abgeschlossen. In diesem Beispiel wird veranschaulicht, wie der WCF-Client im Code konfiguriert wird: Informationen zur Problembehandlung finden Sie unter Problembehandlung für das Lernprogramm "Erste Schritte".

Siehe auch

Aufgaben

Gewusst wie: Erstellen eines Windows Communication Foundation-Clients
Vorgehensweise: Erstellen eines Duplexvertrags
Vorgehensweise: Zugreifen auf Dienste mit einem Duplexvertrag
Beispiel 'Erste Schritte'
Selbst gehostete Dienste

Weitere Ressourcen

Erstellen von Clients
Lernprogramm "Erste Schritte"
Basis-WCF-Programmierung