Vorgehensweise: Erstellen eines Windows Communication Foundation-Vertrags mit einer Klasse
Die bevorzugte Methode zum Erstellen eines WCF-Vertrags (Windows Communication Foundation) ist die Verwendung einer Schnittstelle. Weitere Informationen finden Sie unter Vorgehensweise: Definieren eines Dienstvertrags. Eine Alternative besteht darin, eine Klasse zu erstellen und anschließend das ServiceContractAttribute-Attribut direkt auf die Klasse anzuwenden und das OperationContractAttribute-Attribut auf die einzelnen Methoden in der Klasse, die Teil des Vertrags sind, anzuwenden.
Warnung
[ServiceContract]
und [ServiceContractAttribute]
dienen dem gleichen Zweck. Dasselbe gilt für [OperationContract]
und [OperationContractAttribute]
. Dabei ist jeweils das Erstere die Kurznotation für das Letztere.
Weitere Informationen zu Dienstverträgen finden Sie unter Entwerfen von Dienstverträgen.
Erstellen eines Windows Communication Foundation-Vertrags mit einer Klasse
Erstellen Sie mit Visual Basic, C# oder einer beliebigen anderen Common Language Runtime-Sprache eine neue Klasse.
Wenden Sie die ServiceContractAttribute-Klasse auf die Klasse an.
Erstellen Sie Methoden in der Klasse.
Wenden Sie die OperationContractAttribute-Klasse auf jede Methode an, die als Teil des öffentlichen WCF-Vertrags verfügbar gemacht werden muss.
Beispiel
Im folgenden Codebeispiel wird eine Klasse dargestellt, die einen Dienstvertrag definiert.
[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;
}
}
<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
Die Methoden, auf die die OperationContractAttribute-Klasse angewendet wird, verwenden standardmäßig ein Anforderung-Antwort-Nachrichtenmuster. Weitere Informationen zu diesem Nachrichtenmuster finden Sie unter Vorgehensweise: Erstellen eines Anforderung-Antwort-Vertrags. Sie können auch andere Nachrichtenmuster erstellen und verwenden, indem Sie die Eigenschaften des Attributs festlegen. Weitere Beispiele finden Sie unter Vorgehensweise: Erstellen eines unidirektionalen Vertrags und Vorgehensweise: Erstellen eines Duplexvertrags.