Vorgehensweise: Erstellen eines Windows Communication Foundation-Vertrags mit einer Klasse

Die bevorzugte Möglichkeit, einen Windows Communication Foundation (WCF)-Vertrag zu erstellen, besteht in der Verwendung einer Schnittstelle.Weitere Informationen finden Sie unterGewusst wie: 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] führen den gleichen Vorgang aus.Dasselbe ist zutreffend für [OperationContract] und [OperationContractAttribute].In jedem Fall ist das Vorhergehende die Kurznotation für das Letztere.

Weitere Informationen finden Sie unter zu Dienstverträgen finden Sie unter Entwerfen von Dienstverträgen.

Erstellen eines Windows Communication Foundation-Vertrags mit einer Klasse

  1. Erstellen Sie mit Visual Basic, C# oder einer beliebigen anderen Common Language Runtime-Sprache eine neue Klasse.

  2. Wenden Sie die ServiceContractAttribute-Klasse auf die Klasse an.

  3. Erstellen Sie Methoden in der Klasse.

  4. 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 finden Sie unter zu diesem Nachrichtenmuster finden Sie unter Gewusst wie: 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 unter Vorgehensweise: Erstellen eines Duplexvertrags.

Siehe auch

ServiceContractAttribute
OperationContractAttribute