Instrukcje: Tworzenie kontraktu „żądanie-odpowiedź”
Kontrakt żądania-odpowiedzi określa metodę zwracającą odpowiedź. Odpowiedź musi zostać wysłana i skorelowana z żądaniem zgodnie z warunkami niniejszej umowy. Nawet jeśli metoda nie zwraca żadnej odpowiedzi (void
w języku C# lub Sub
w Visual Basic), infrastruktura tworzy i wysyła pusty komunikat do obiektu wywołującego. Aby zapobiec wysyłaniu pustej wiadomości odpowiedzi, użyj kontraktu jednokierunkowego dla operacji.
Aby utworzyć kontrakt z odpowiedzią na żądanie
Utwórz interfejs w wybranym języku programowania.
ServiceContractAttribute Zastosuj atrybut do interfejsu.
OperationContractAttribute Zastosuj atrybut do każdej metody, którą mogą wywołać klienci.
Opcjonalny. Ustaw wartość IsOneWay właściwości , aby
true
zapobiec wysyłaniu pustej wiadomości odpowiedzi. Domyślnie wszystkie operacje to kontrakty żądań i odpowiedzi.
Przykład
Poniższy przykład definiuje kontrakt dla usługi kalkulatora, która udostępnia Add
i Subtract
metody. Metoda Multiply
nie jest częścią kontraktu, ponieważ nie jest oznaczona przez klasę OperationContractAttribute i dlatego nie jest dostępna dla klientów.
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)
}
Aby uzyskać więcej informacji na temat określania kontraktów operacji, zobacz klasę OperationContractAttributeIsOneWay i właściwość.
ServiceContractAttribute Zastosowanie atrybutów i OperationContractAttribute powoduje automatyczne generowanie definicji kontraktów usług w dokumencie WSDL (Web Services Description Language) po wdrożeniu usługi. Dokument jest pobierany przez dołączenie
?wsdl
do podstawowego adresu HTTP dla usługi. Na przykładhttp://microsoft/CalculatorService?wsdl