Delen via


Procedure: Een aanvraag-antwoordcontract maken

Een aanvraag-antwoordcontract geeft een methode op die een antwoord retourneert. Het antwoord moet worden verzonden en gecorreleerd aan de aanvraag onder de voorwaarden van dit contract. Zelfs als de methode geen antwoord retourneert (void in C# of een Sub in Visual Basic), maakt en verzendt de infrastructuur een leeg bericht naar de beller. Als u het verzenden van een leeg antwoordbericht wilt voorkomen, gebruikt u een eenrichtingscontract voor de bewerking.

Een aanvraag-antwoordcontract maken

  1. Maak een interface in de programmeertaal van uw keuze.

  2. Pas het ServiceContractAttribute kenmerk toe op de interface.

  3. Pas het OperationContractAttribute kenmerk toe op elke methode die clients kunnen aanroepen.

  4. Optioneel. Stel de waarde van de IsOneWay eigenschap in om true te voorkomen dat een leeg antwoordbericht wordt verzonden. Standaard zijn alle bewerkingen aanvraag-antwoordcontracten.

Opmerking

In het volgende voorbeeld wordt een contract gedefinieerd voor een rekenmachineservice die voorziet Add in en Subtract methoden. De Multiply methode maakt geen deel uit van het contract omdat deze niet is gemarkeerd door de OperationContractAttribute klasse en dus niet toegankelijk is voor clients.

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)
}
  • Zie de OperationContractAttribute klasse en de IsOneWay eigenschap voor meer informatie over het opgeven van bewerkingscontracten.

  • Door de ServiceContractAttribute en OperationContractAttribute kenmerken toe te passen, wordt het automatisch genereren van servicecontractdefinities in een WSDL-document (Web Services Description Language) veroorzaakt zodra de service is geïmplementeerd. Het document wordt gedownload door het HTTP-basisadres voor de service toe te ?wsdl voegen. Bijvoorbeeld http://microsoft/CalculatorService?wsdl

Zie ook