Vorgehensweise: Erstellen eines Windows Communication Foundation-Vertrags mit einer KlasseHow to: Create a Windows Communication Foundation Contract with a Class

Die bevorzugte Möglichkeit, einen Windows Communication Foundation (WCF)Windows Communication Foundation (WCF)-Vertrag zu erstellen, besteht in der Verwendung einer Schnittstelle.The preferred way of creating a Windows Communication Foundation (WCF)Windows Communication Foundation (WCF) contract is by using an interface. Weitere Informationen finden Sie unterFor more information, seeWie: Definieren eines Dienstvertrags. How to: Define a Service Contract. 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.An alternative, outlined here, is to create a class and then apply the ServiceContractAttribute attribute to the class directly and the OperationContractAttribute attribute to each of the methods in the class that are part of the contract.

Warnung

[ServiceContract] und [ServiceContractAttribute] dienen dem gleichen Zweck.[ServiceContract] and [ServiceContractAttribute] do the same thing. Dasselbe gilt für [OperationContract] und [OperationContractAttribute].The same thing it true for [OperationContract] and [OperationContractAttribute]. Dabei ist jeweils das Erstere die Kurznotation für das Letztere.In each case the former is shorthand for the latter.

Weitere Informationen finden Sie unterFor more information about-Dienstverträge, finden Sie unter Entwerfen von Dienstverträgen. service contracts, see Designing Service Contracts.

Erstellen eines Windows Communication Foundation-Vertrags mit einer KlasseCreating a Windows Communication Foundation contract with a class

  1. Erstellen Sie mit Visual BasicVisual Basic, C# oder einer beliebigen anderen Common Language Runtime-Sprache eine neue Klasse.Create a new class using Visual BasicVisual Basic, C#, or any other common language runtime language.

  2. Wenden Sie die ServiceContractAttribute-Klasse auf die Klasse an.Apply the ServiceContractAttribute class to the class.

  3. Erstellen Sie Methoden in der Klasse.Create methods in the class.

  4. Wenden Sie die OperationContractAttribute-Klasse auf jede Methode an, die als Teil des öffentlichen WCFWCF-Vertrags verfügbar gemacht werden muss.Apply the OperationContractAttribute class to each method that must be exposed as part of the public WCFWCF contract.

BeispielExample

Im folgenden Codebeispiel wird eine Klasse dargestellt, die einen Dienstvertrag definiert.The following code example shows a class that defines a service contract.

[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.The methods that have the OperationContractAttribute class applied use a request-reply message pattern by default. Weitere Informationen finden Sie unterFor more information aboutDieses Nachrichtenmuster finden Sie unter Vorgehensweise: Erstellen Sie einen Anforderung-Antwort-Vertrag. this message pattern, see How to: Create a Request-Reply Contract. Sie können auch andere Nachrichtenmuster erstellen und verwenden, indem Sie die Eigenschaften des Attributs festlegen.You can also create and use other message patterns by setting properties of the attribute. Weitere Beispiele finden Sie unter Vorgehensweise: Erstellen eines unidirektionalen Vertrags und Vorgehensweise: Erstellen eines Duplexvertrags.For more examples, see How to: Create a One-Way Contract and How to: Create a Duplex Contract.

Siehe auchSee Also

ServiceContractAttribute
OperationContractAttribute