Implementazione dei contratti di servizio

Un servizio è una classe che espone le funzionalità disponibili per i client a uno o più endpoint. Per creare un servizio, scrivere una classe che implementa un contratto Windows Communication Foundation (WCF). Questa operazione può essere eseguita in due modi. È possibile definire il contratto separatamente come un'interfaccia e quindi creare una classe che implementi tale interfaccia. In alternativa, è possibile creare direttamente la classe e il contratto posizionando l'attributo ServiceContractAttribute sulla classe e l'attributo OperationContractAttribute sui metodi disponibili per i client del servizio.

Creazione di una classe di servizio

Nell'esempio seguente viene illustrato un servizio che implementa un contratto IMath definito separatamente.

// Define the IMath contract.  
[ServiceContract]  
public interface IMath  
{  
    [OperationContract]
    double Add(double A, double B);  
  
    [OperationContract]  
    double Multiply (double A, double B);  
}  
  
// Implement the IMath contract in the MathService class.  
public class MathService : IMath  
{  
    public double Add (double A, double B) { return A + B; }  
    public double Multiply (double A, double B) { return A * B; }  
}  

In alternativa, un servizio può esporre direttamente un contratto. Nell'esempio seguente viene illustrata una classe di servizio che definisce e implementa un contratto MathService.

// Define the MathService contract directly on the service class.  
[ServiceContract]  
class MathService  
{  
    [OperationContract]  
    public double Add(double A, double B) { return A + B; }  
    [OperationContract]  
    private double Multiply (double A, double B) { return A * B; }  
}  

Si noti che i servizi precedenti espongono contratti diversi perché i nomi di contratto sono diversi. Nel primo caso, il contratto esposto è denominato "IMath" mentre nel secondo caso il contratto è denominato "MathService".

È possibile impostare alcuni aspetti a livello del servizio e dell'implementazione dell'operazione, ad esempio la concorrenza e la creazione di istanze. Per altre informazioni, vedere Progettazione e implementazione di servizi.

Dopo avere implementato un contratto di servizio, è necessario creare uno o più endpoint per il servizio. Per altre informazioni, vedere Panoramica della creazione di endpoint. Per altre informazioni su come eseguire un servizio, vedere Servizi di hosting.

Vedi anche