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

  1. Utwórz interfejs w wybranym języku programowania.

  2. ServiceContractAttribute Zastosuj atrybut do interfejsu.

  3. OperationContractAttribute Zastosuj atrybut do każdej metody, którą mogą wywołać klienci.

  4. 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ład http://microsoft/CalculatorService?wsdl

Zobacz też