Condividi tramite


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 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