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:
Creazione di un oggetto di WCF.
Chiamata delle operazioni del servizio dal proxy generato.
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
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();
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);
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