Implementieren von Dienstverträgen

Ein Dienst ist eine Klasse, die die an einem oder mehreren Endpunkten für den Client bereitstehenden Funktionen verfügbar macht.Wenn Sie einen Dienst erstellen möchten, schreiben Sie eine Klasse, die einen Windows Communication Foundation (WCF)- implementiert.Dazu haben Sie zwei Möglichkeiten:Sie können den Vertrag gesondert als Schnittstelle definieren und dann eine Klasse erstellen, die die Schnittstelle implementiert.Alternativ können Sie die Klasse und den Vertrag direkt erstellen, indem Sie das ServiceContractAttribute-Attribut direkt für die Klasse und das OperationContractAttribute-Attribut für die Methoden festlegen, die für die Clients des Dienstes verfügbar sind.

Erstellen einer Dienstklasse

Im folgende Beispiel implementiert ein Dienst einen IMath-Vertrag, der gesondert definiert wurde.

// Define the IMath contract.  
[ServiceContract]  
public interface IMath  
{  
    [OperationContract]   
    double Add(double A, double B);  

    [OperationContract]  
    double Multiply (double A, double B);  
}  

// Implement the IMath contract in the MathService class.  
public class MathService : IMath  
{  
    public double Add (double A, double B) { return A + B; }  
    public double Multiply (double A, double B) { return A * B; }  
}  

Ein Dienst kann stattdessen einen Vertrag auch direkt verfügbar machen.Im folgende Beispiel definiert und implementiert eine Dienstklasse einen MathService-Vertrag.

// Define the MathService contract directly on the service class.  
[ServiceContract]  
class MathService  
{  
    [OperationContract]  
    public double Add(double A, double B) { return A + B; }  
    [OperationContract]  
    private double Multiply (double A, double B) { return A * B; }  
}  

Die vorhergehenden Dienste machen hierbei verschiedene Verträge verfügbar, da sich die Vertragsnamen unterscheiden.Im ersten Fall wird der verfügbar gemachte Vertrag "IMath" genannt und im zweiten Fall lautet der Name des Vertrags MathService".

Sie können auf den Ebenen der Dienst- und Vorgangsimplementierung Verschiedenes festlegen, z. B. die Parallelität und Instanziierung.Weitere Informationen finden Sie unterEntwerfen und Implementieren von Diensten.

Nach der Implementierung eines Dienstvertrags müssen Sie einen oder mehrere Endpunkte für den Dienst erstellen.Weitere Informationen finden Sie unterÜbersicht über die Endpunkterstellung.Weitere Informationen finden Sie unter zum Ausführen eines Dienstes finden Sie unter Hosting-Dienste.

Siehe auch

Entwerfen und Implementieren von Diensten
Vorgehensweise: Erstellen eines Diensts mit einer Vertragsklasse
Vorgehensweise: Erstellen eines Diensts mit einer Vertragsschnittstelle
Angeben des Dienstlaufzeitverhaltens