Procedura: accedere ai servizi con un contratto duplex
Una funzionalità di Windows Communication Foundation (WCF) è la possibilità di creare un servizio che utilizza un modello di messaggistica duplex. Questo modello consente a un servizio di comunicare con il client tramite un callback. In questo argomento vengono illustrati i passaggi per creare un client WCF in una classe client che implementa l'interfaccia di callback.
Un'associazione duale espone l'indirizzo IP del client al servizio. Nel client è necessario implementare un meccanismo di protezione in grado di garantire che il client si connetta solo a servizi ritenuti attendibili.
Per un'esercitazione sulla creazione di servizi e client WCF di base, vedere Esercitazione introduttiva.
Per accedere a un servizio duplex
Creare un servizio che contiene due interfacce. La prima interfaccia è per il servizio, la seconda è per il callback. Per ulteriori informazioni sulla creazione di un servizio duplex, vedere Procedura: creare un contratto duplex.
Eseguire il servizio.
Utilizzare lo ServiceModel Metadata Utility Tool (Svcutil.exe) per generare contratti (interfacce) per il client. Per informazioni su tale procedura, vedere Procedura: creare un client di Windows Communication Foundation.
Implementare l'interfaccia di callback nella classe client, come illustrato nell'esempio seguente.
public class CallbackHandler : ICalculatorDuplexCallback { public void Result(double result) { Console.WriteLine("Result ({0})", result); } public void Equation(string equation) { Console.WriteLine("Equation({0})", equation); } }
Public Class CallbackHandler Implements ICalculatorDuplexCallback Public Sub Result (ByVal result As Double) Console.WriteLine("Result ({0})", result) End Sub Public Sub Equation(ByVal equation As String) Console.Writeline("Equation({0})", equation) End Sub End Class
Creare un'istanza della classe InstanceContext. Il costruttore richiede un'istanza della classe client.
InstanceContext site = new InstanceContext(new CallbackHandler());
Dim site As InstanceContext = New InstanceContext(new CallbackHandler())
Creare un'istanza del client WCF utilizzando il costruttore che richiede un oggetto InstanceContext. Il secondo parametro del costruttore è il nome di un endpoint contenuto nel file di configurazione.
CalculatorDuplexClient wcfClient = new CalculatorDuplexClient(site, "default")
Dim wcfClient As New CalculatorDuplexClient(site, "default")
Chiamare i metodi del client WCF secondo le esigenze.
Esempio
Nell'esempio di codice seguente viene descritto come creare una classe client che accede a un contratto duplex.
Protezione
Vedere anche
Attività
Procedura: creare un contratto duplex
Procedura: creare un client di Windows Communication Foundation
Procedura: utilizzare ChannelFactory
Altre risorse
Esercitazione introduttiva
ServiceModel Metadata Utility Tool (Svcutil.exe)