Condividi tramite


Procedura: creare un servizio con un'interfaccia di contratto

La modalità preferita per creare un contratto Windows Communication Foundation (WCF) è tramite un'interfaccia. Questo contratto specifica la raccolta e la struttura dei messaggi necessari per accedere alle operazioni offerte dal servizio. Questa interfaccia definisce i tipi di input e output applicando la classe ServiceContractAttribute all'interfaccia e la classe OperationContractAttribute ai metodi che si desidera esporre.

Per ulteriori informazioni su sui contratti di servizio, vedere Progettazione dei contratti di servizio.

Creazione di un contratto WCF con un'interfaccia

  1. Creare una nuova interfaccia utilizzando Visual Basic, C# o qualsiasi altro linguaggio Common Language Runtime.

  2. Applicare la classe ServiceContractAttribute all'interfaccia.

  3. Definire i metodi nell'interfaccia.

  4. Applicare la classe OperationContractAttribute a ogni metodo che deve essere esposto come parte del contratto WCF pubblico.

Esempio

Nell'esempio di codice seguente viene illustrata un'interfaccia che definisce un contratto di servizio.

    <ServiceContract()> _
Public Interface ICalculator
        <OperationContract()> _
        Function Add(ByVal n1 As Double, ByVal n2 As Double) As Double
        <OperationContract()> _
        Function Subtract(ByVal n1 As Double, ByVal n2 As Double) As Double
        <OperationContract()> _
        Function Multiply(ByVal n1 As Double, ByVal n2 As Double) As Double
        <OperationContract()> _
        Function Divide(ByVal n1 As Double, ByVal n2 As Double) As Double
    End Interface
using System.ServiceModel; 

[ServiceContract] 
public interface ICalculator 
{ 
   [OperationContract]
   double Add(double n1, double n2);
   [OperationContract]
   double Subtract(double n1, double n2);
   [OperationContract]
   double Multiply(double n1, double n2);
   [OperationContract]
   double Divide(double n1, double n2);
}

I metodi a cui è applicata la classe OperationContractAttribute utilizzano per impostazione predefinita un modello di messaggio request/reply. Per ulteriori informazioni su su tale modello, vedere Procedura: creare un contratto request/reply. È anche possibile creare e utilizzare altri modelli di messaggio impostando proprietà dell'attributo. Per ulteriori esempi, vedere Procedura: creare un contratto unidirezionale e Procedura: creare un contratto duplex.

Vedere anche

Riferimento

ServiceContractAttribute
OperationContractAttribute