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 implementi 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 ulteriori informazioni, vedere Progettazione e implementazione di servizi.

Dopo avere implementato un contratto di servizio, è necessario creare uno o più endpoint per il servizio. Per ulteriori informazioni, vedere Cenni preliminari sulla creazione di endpoint. Per ulteriori informazioni su come eseguire un servizio, vedere Servizi host.

Vedere anche

Attività

Procedura: creare un contratto Windows Communication Foundation con una classe
Procedura: creare un servizio con un'interfaccia di contratto

Concetti

Progettazione e implementazione di servizi
Specifica del comportamento in fase di esecuzione del servizio