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.