IRequestChannel.Request Metoda

Definicja

Wysyła żądanie oparte na komunikatach i zwraca skorelowane odpowiedzi oparte na komunikatach.

Przeciążenia

Request(Message)

Wysyła żądanie oparte na komunikatach i zwraca skorelowane odpowiedzi oparte na komunikatach.

Request(Message, TimeSpan)

Wysyła żądanie oparte na komunikatach i zwraca skorelowane odpowiedzi oparte na komunikatach w określonym interwale czasu.

Request(Message)

Źródło:
IRequestChannel.cs
Źródło:
IRequestChannel.cs
Źródło:
IRequestChannel.cs

Wysyła żądanie oparte na komunikatach i zwraca skorelowane odpowiedzi oparte na komunikatach.

public:
 System::ServiceModel::Channels::Message ^ Request(System::ServiceModel::Channels::Message ^ message);
public System.ServiceModel.Channels.Message Request (System.ServiceModel.Channels.Message message);
abstract member Request : System.ServiceModel.Channels.Message -> System.ServiceModel.Channels.Message
Public Function Request (message As Message) As Message

Parametry

message
Message

Żądanie Message do przesłania.

Zwraca

Odebrany Message w odpowiedzi na żądanie.

Przykłady

Poniższy kod pokazuje, jak zaimplementować tę metodę:

public Message Request(Message message)
{
    return this.InnerChannel.Request(message);
}

Uwagi

Implementacje IRequestChannel zapewnienia, że komunikat odpowiedzi jest skorelowany z komunikatem żądania.

Ogólnie rzecz biorąc, jeśli implementacja komunikatu IRequestChannel nie jest skorelowana z zaległym żądaniem, zostanie porzucona.

Metoda Request może być wywoływana współbieżnie w wielu wątkach.

Przekazanie komunikatu do kanału żądania powoduje uzyskanie dostępu do komunikatu. Po wywołaniu metody Requestnie można już sprawdzić wiadomości ani wywołać Close tej wiadomości.

Jeśli komunikat żądania jest większy, że maksymalny rozmiar komunikatu dozwolony przez używane powiązanie jest QuotaExceededException zgłaszany. Maksymalny rozmiar komunikatu MaxReceivedMessageSize jest ustawiany przez właściwość . Wartość domyślna to 65536 bajtów.

Dotyczy

Request(Message, TimeSpan)

Źródło:
IRequestChannel.cs
Źródło:
IRequestChannel.cs
Źródło:
IRequestChannel.cs

Wysyła żądanie oparte na komunikatach i zwraca skorelowane odpowiedzi oparte na komunikatach w określonym interwale czasu.

public:
 System::ServiceModel::Channels::Message ^ Request(System::ServiceModel::Channels::Message ^ message, TimeSpan timeout);
public System.ServiceModel.Channels.Message Request (System.ServiceModel.Channels.Message message, TimeSpan timeout);
abstract member Request : System.ServiceModel.Channels.Message * TimeSpan -> System.ServiceModel.Channels.Message
Public Function Request (message As Message, timeout As TimeSpan) As Message

Parametry

message
Message

Żądanie Message do przesłania.

timeout
TimeSpan

Określa TimeSpan interwał czasu, w którym musi zostać odebrana odpowiedź.

Zwraca

Odebrany Message w odpowiedzi na żądanie.

Przykłady

Poniższy kod pokazuje, jak zaimplementować tę metodę.

public Message Request(Message message, TimeSpan timeout)
{
    return this.InnerChannel.Request(message, timeout);
}

Uwagi

Implementacje IRequestChannel zapewnienia, że komunikat odpowiedzi jest skorelowany z komunikatem żądania.

Ogólnie rzecz biorąc, jeśli implementacja komunikatu IRequestChannel nie jest skorelowana z zaległym żądaniem, zostanie porzucona.

Metoda Request może być wywoływana współbieżnie w wielu wątkach.

Przekazanie komunikatu do kanału żądania powoduje uzyskanie dostępu do komunikatu. Po wywołaniu metody Requestnie można już sprawdzić wiadomości ani wywołać Close tej wiadomości.

Jeśli komunikat żądania jest większy, że maksymalny rozmiar komunikatu dozwolony przez używane powiązanie jest QuotaExceededException zgłaszany. Maksymalny rozmiar komunikatu MaxReceivedMessageSize jest ustawiany przez właściwość . Wartość domyślna to 65536 bajtów.

Jeśli element timeout jest przekazywany podczas wywoływania funkcji, zostanie użyta ta wartość. Jeśli element SendTimeout jest ustawiony na powiązanie, wartość powiązania jest używana, jeśli nie timeout jest określona podczas wywoływania funkcji.

Parametr DefaultSendTimeout jest używany, jeśli nie określono limitu czasu dla powiązania lub podczas wywoływania funkcji. Ta wartość domyślna to 1 minuta.

Uwagi dotyczące implementowania

Operacja powinna zgłaszać wartość TimeoutException , jeśli określona timeout wartość zostanie przekroczona przed ukończeniem operacji.

Dotyczy