Condividi tramite


Procedura: utilizzare un client di Windows Communication Foundation

Questa è l'ultima delle sei attività necessarie per creare un servizio Windows Communication Foundation (WCF) di base e un client in grado di chiamare il servizio. Per una panoramica di tutte e sei le attività, vedere l'argomento Esercitazione introduttiva.

Una volta creato e configurato un proxy Windows Communication Foundation (WCF), è possibile creare un'istanza del client e l'applicazione client può essere compilata e utilizzata per comunicare con il servizio WCF. In questo argomento vengono illustrate le procedure per la creazione e l'utilizzo di un client WCF. La procedura consente di eseguire tre operazioni:

  1. Creazione di un oggetto di WCF.

  2. Chiamata delle operazioni del servizio dal proxy generato.

  3. Chiusura del client dopo il completamento dell'operazione.

Il codice illustrato nella procedura viene fornito anche nell'esempio seguente alla procedura stessa. Il codice presente in questa attività deve essere posizionato nel metodo Main() della classe Program generata nel progetto del client.

Per utilizzare un client di Windows Communication Foundation

  1. Creare un'istanza EndpointAddress per l'indirizzo di base del servizio da chiamare, quindi creare un oggetto Client WCF.

    ' 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. Chiamare le operazioni client dall'interno di Client.

    '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. Chiamare Close sul client WCF e attendere che l'utente prema il tasto INVIO per terminare l'applicazione.

    ' 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();
    

Esempio

Nell'esempio seguente viene illustrato come creare un client WCF, come chiamare le operazioni del client e come chiudere il client al termine della chiamata dell'operazione.

Compilare il client WCF generato e l'esempio di codice seguente in un eseguibile denominato Client.exe. Assicurarsi di fare riferimento a System.ServiceModel al momento di compilare il codice.

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();

        }
    }
}

Assicurarsi che il servizio sia in esecuzione prima di tentare di utilizzare il client. Per ulteriori informazioni, vedere Procedura: ospitare ed eseguire un servizio Windows Communication Foundation di base.

Per avviare il client, fare clic con il pulsante destro del mouse su Client in Esplora soluzioni, quindi scegliere Debug, Avvia nuova istanza.

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.

Se viene visualizzato questo output, l'esercitazione è stata completata correttamente. In questo esempio viene illustrato come configurare il client WCF nel codice. Per informazioni sulla risoluzione dei problemi, vedere Risoluzione dei problemi relativi all'esercitazione introduttiva.

Vedere anche

Attività

Procedura: creare un client di Windows Communication Foundation
Procedura: creare un contratto duplex
Procedura: accedere ai servizi con un contratto duplex
Esempio della guida introduttiva
Servizio indipendente

Altre risorse

Creazione di client
Esercitazione introduttiva
Programmazione WCF di base