Freigeben über


Implementieren von Serviceverträgen

Ein Dienst ist eine Klasse, die Für Clients auf einem oder mehreren Endpunkten verfügbare Funktionen verfügbar macht. Um einen Dienst zu erstellen, schreiben Sie eine Klasse, die einen Windows Communication Foundation (WCF)-Vertrag implementiert. Dazu haben Sie zwei Möglichkeiten. Sie können den Vertrag separat als Schnittstelle definieren und dann eine Klasse erstellen, die diese Schnittstelle implementiert. Alternativ können Sie die Klasse und den Vertrag direkt erstellen, indem Sie das ServiceContractAttribute Attribut für die Klasse selbst und das OperationContractAttribute Attribut für die für die Clients des Diensts verfügbaren Methoden platzieren.

Erstellen einer Dienstklasse

Nachfolgend sehen Sie ein Beispiel für einen Dienst, der einen IMath Vertrag implementiert, der separat 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; }  
}  

Alternativ kann ein Dienst einen Vertrag direkt verfügbar machen. Im Folgenden sehen Sie ein Beispiel für eine Dienstklasse, die einen MathService Vertrag definiert und implementiert.

// 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; }  
}  

Beachten Sie, dass die vorstehenden Dienste unterschiedliche Verträge verfügbar machen, da die Vertragsnamen unterschiedlich sind. Im ersten Fall heißt der exponierte Vertrag "IMath", während im zweiten Fall der Vertrag "MathService" heißt.

Sie können einige Dinge auf dienst- und Betriebsimplementierungsebenen festlegen, z. B. Parallelität und Instancing. Weitere Informationen finden Sie unter Entwerfen 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 Endpoint Creation Overview. Weitere Informationen zum Ausführen eines Diensts finden Sie unter Hostingdienste.

Siehe auch