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
Skapa ett gränssnitt i valfritt programmeringsspråk.
ServiceContractAttribute Använd attributet för gränssnittet.
OperationContractAttribute Använd attributet för varje metod som klienter kan anropa.
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