Freigeben über


Vorgehensweise: Erstellen eines Anforderung-Antwort-Vertrags

Ein Anforderung-Antwort-Vertrag gibt eine Methode an, die eine Antwort zurückgibt. Die Antwort muss gesendet und unter den Bedingungen dieses Vertrags mit der Anforderung in Beziehung gesetzt werden. Selbst wenn die Methode keine Antwort (void in C# oder Sub in Visual Basic) zurückgibt, wird von der Infrastruktur eine leere Nachricht erstellt und gesendet, um dem Aufrufer mitzuteilen, dass die Methode einen Wert zurückgegeben hat. Verwenden Sie einen unidirektionalen Vertrag für die Operation, um das Senden einer leeren Mitteilung zu unterbinden.

So erstellen Sie einen Anforderung-Antwort-Vertrag

  1. Erstellen Sie in der Programmiersprache Ihrer Wahl eine Schnittstelle.

  2. Fügen Sie das ServiceContractAttribute-Attribut der Schnittstelle hinzu.

  3. Fügen Sie das OperationContractAttribute-Attribut jeder von Clients aufrufbaren Methode hinzu.

  4. Optional. Legen Sie den Wert der IsOneWay-Eigenschaft auf true fest, um das Senden einer leeren Mitteilung zu verhindern. Standardmäßig sind alle Operationen Anforderung-Antwort-Verträge.

Beispiel

Im folgenden Beispiel wird ein Vertrag für einen Rechnerdienst definiert, der die Add-Methode und die Subtract-Methode bereitstellt. Die Multiply-Methode ist nicht Teil des Vertrags, weil sie von der OperationContractAttribute-Klasse nicht gekennzeichnet wurde und somit nicht für Clients verfügbar ist.

using System.ServiceModel;

[ServiceContract]
public interface ICalculator
{
    [OperationContract]
    // It would be equivalent to write explicitly:
    // [OperationContract(IsOneWay=false)]
    int Add(int a, int b);

    [OperationContract]
    int Subtract(int a, int b);

    int Multiply(int a, int b)
}
  • Weitere Informationen über die Angabe von Vorgangsverträgen finden Sie in der OperationContractAttribute-Klasse und der IsOneWay-Eigenschaft.

  • Durch Anwenden des ServiceContractAttribute-Attributs und des OperationContractAttribute-Attributs wird die automatische Generierung von Dienstvertragsdefinitionen in einem WSDL (Web Services Description Language)-Dokument ermöglicht, sobald der Dienst bereitgestellt wird. Das Dokument wird durch Anfügen von ?wsdl an die HTTP-Basisadresse des Diensts heruntergeladen. Zum Beispiel, http://microsoft/CalculatorService?wsdl

Siehe auch