Dela via


Gör så här: Skapa ett avtal för begärandesvar

Ett begärandesvarskontrakt anger en metod som returnerar ett svar. Svaret måste skickas och korreleras med begäran enligt villkoren i detta avtal. Även om metoden inte returnerar något svar (void i C# eller i Sub Visual Basic) skapar och skickar infrastrukturen ett tomt meddelande till anroparen. Om du vill förhindra att ett tomt svarsmeddelande skickas använder du ett enkelriktade kontrakt för åtgärden.

Så här skapar du ett begärandesvarskontrakt

  1. Skapa ett gränssnitt i valfritt programmeringsspråk.

  2. ServiceContractAttribute Använd attributet för gränssnittet.

  3. OperationContractAttribute Använd attributet för varje metod som klienter kan anropa.

  4. Valfritt. Ange värdet för IsOneWay egenskapen till för true att förhindra att ett tomt svarsmeddelande skickas. Som standard är alla åtgärder kontrakt för begärandesvar.

Exempel

Följande exempel definierar ett kontrakt för en kalkylatortjänst som tillhandahåller Add och Subtract metoder. Metoden Multiply är inte en del av kontraktet eftersom den inte är markerad av OperationContractAttribute klassen och därför inte är tillgänglig för klienter.

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)
}
  • Mer information om hur du anger åtgärdskontrakt finns i OperationContractAttribute klassen och egenskapen IsOneWay .

  • Om attributen ServiceContractAttribute och OperationContractAttribute tillämpas genereras automatiskt definitioner av tjänstkontrakt i ett WSDL-dokument (Web Services Description Language) när tjänsten har distribuerats. Dokumentet laddas ned genom att lägga ?wsdl till http-basadressen för tjänsten. Till exempel: http://microsoft/CalculatorService?wsdl

Se även