Procedura: creare un contratto Windows Communication Foundation con una classe
La modalità preferita per creare un contratto Windows Communication Foundation (WCF) è tramite un'interfaccia. Per ulteriori informazioni, vedere Procedura: definire un contratto di servizio di Windows Communication Foundation. Un'alternativa, illustrata qui, consiste nel creare una classe e quindi nell'applicare la classe ServiceContractAttribute direttamente alla classe e la classe OperationContractAttribute a ognuno dei metodi nella classe che fanno parte del contratto.
Per ulteriori informazioni su sui contratti di servizio, vedere Progettazione dei contratti di servizio.
Creazione di un contratto Windows Communication Foundation con una classe
Creare una nuova classe utilizzando Visual Basic, C# o qualsiasi altro linguaggio Common Language Runtime.
Applicare la classe ServiceContractAttribute alla classe.
Creare metodi nella classe.
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 una classe che definisce un contratto di servizio.
<ServiceContract()> _
Public Class CalculatorService
<OperationContract()> _
Public Function Add(ByVal n1 As Double, ByVal n2 As Double) As Double
Return n1 + n2
End Function
<OperationContract()> _
Public Function Subtract(ByVal n1 As Double, ByVal n2 As Double) As Double
Return n1 - n2
End Function
<OperationContract()> _
Public Function Multiply(ByVal n1 As Double, ByVal n2 As Double) As Double
Return n1 * n2
End Function
<OperationContract()> _
Public Function Divide(ByVal n1 As Double, ByVal n2 As Double) As Double
Return n1 / n2
End Function
End Class
[ServiceContract]
public class CalculatorService
{
[OperationContract]
public double Add(double n1, double n2)
{
return n1 + n2;
}
[OperationContract]
public double Subtract(double n1, double n2)
{
return n1 - n2;
}
[OperationContract]
public double Multiply(double n1, double n2)
{
return n1 * n2;
}
[OperationContract]
public double Divide(double n1, double n2)
{
return n1 / 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.