Procedura: creare un contratto request/reply
Un contratto di tipo request/reply specifica un metodo che restituisce una risposta che deve essere inviata e correlata alla richiesta in base ai termini di questo contratto. Anche se il metodo non restituisce alcuna risposta (void in C# o Sub in Visual Basic), nell'infrastruttura viene creato e inviato un messaggio vuoto al chiamante. Per impedire l'invio di un messaggio di risposta vuoto, utilizzare un contratto unidirezionale per l'operazione.
Per creare un contratto request/reply
Creare un'interfaccia nel linguaggio di programmazione desiderato.
Applicare l'attributo ServiceContractAttribute all'interfaccia.
Applicare l'attributo OperationContractAttribute a ciascun metodo che i client possono richiamare.
Facoltativa. Impostare il valore della proprietà IsOneWay su true per impedire l'invio di un messaggio di risposta vuoto. Per impostazione predefinita, tutte le operazioni sono contratti di tipo request/reply.
Esempio
Nell'esempio seguente è definito un contratto per un servizio calcolatrice che fornisce metodi Add e Subtract. Il metodo Multiply privato non fa parte del contratto perché non è contrassegnato dalla classe OperationContractAttribute e quindi non è accessibile ai client.
using System.ServiceModel;
[ServiceContract]
public interface ICalculator
{
[OperationContract]
// It would be equivalent to write explicitly:
// [OperationContract(IsOneWay=false)]
int Add(int a, int b);
[OperationContract]
int Subtract(int a, int b);
int Multiply(int a, int b)
}
Per ulteriori informazioni su come specificare contratti di operazione, vedere la classe OperationContractAttribute e la proprietà IsOneWay.
L'applicazione degli attributi ServiceContractAttribute e OperationContractAttribute determina la generazione automatica delle definizioni del contratto di servizio in un documento del linguaggio di descrizione dei servizi Web (WSDL, Web Services Description Language) dopo la distribuzione del servizio. Il documento viene scaricato aggiungendo l'elemento ?wsdl all'indirizzo di base HTTP per il servizio, ad esempio
http://microsoft/CalculatorService?wsdl
.
Vedere anche
Attività
Procedura: creare un contratto duplex