Vorgehensweise: Erstellen eines Diensts mit einer VertragsschnittstelleHow to: Create a Service with a Contract Interface

Die bevorzugte Methode zum Erstellen eines Windows Communication Foundation (WCF)-Vertrags wird mithilfe einer Schnittstelle.The preferred way to create a Windows Communication Foundation (WCF) contract is by using an interface. Dieser Vertrag gibt die Auflistung und Struktur von Nachrichten an, die erforderlich sind, um auf die Vorgänge zuzugreifen, die der Dienst anbietet.This contract specifies the collection and structure of messages required to access the operations the service offers. Diese Schnittstelle definiert die Eingabe- und Ausgabetypen durch Anwenden der ServiceContractAttribute-Klasse auf die Schnittstelle und der OperationContractAttribute-Klasse auf die Methoden, die verfügbar gemacht werden sollen.This interface defines the input and output types by applying the ServiceContractAttribute class to the interface and the OperationContractAttribute class to the methods that you want to expose.

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

Erstellen eines WCF-Vertrags mit einer SchnittstelleCreating a WCF contract with an interface

  1. Erstellen Sie eine neue Schnittstelle, die mit Visual Basic, c# oder einer beliebigen anderen common Language Runtime-Sprache.Create a new interface using Visual Basic, C#, or any other common language runtime language.

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

  3. Definieren Sie die Methoden in der Schnittstelle.Define the methods in the interface.

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

BeispielExample

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

using System.ServiceModel; 

[ServiceContract] 
public interface ICalculator 
{ 
   [OperationContract]
   double Add(double n1, double n2);
   [OperationContract]
   double Subtract(double n1, double n2);
   [OperationContract]
   double Multiply(double n1, double n2);
   [OperationContract]
   double Divide(double n1, double n2);
}


    <ServiceContract()> _
Public Interface ICalculator
        <OperationContract()> _
        Function Add(ByVal n1 As Double, ByVal n2 As Double) As Double
        <OperationContract()> _
        Function Subtract(ByVal n1 As Double, ByVal n2 As Double) As Double
        <OperationContract()> _
        Function Multiply(ByVal n1 As Double, ByVal n2 As Double) As Double
        <OperationContract()> _
        Function Divide(ByVal n1 As Double, ByVal n2 As Double) As Double
    End Interface

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 zu diesem Nachrichtenmuster finden Sie unter Vorgehensweise: Erstellen Sie einen Anforderung-Antwort-Vertrag.For more information about 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