IRequestChannel.Request Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Envia um pedido baseado em mensagem e devolve a resposta correlacionada baseada em mensagens.
Sobrecargas
| Name | Description |
|---|---|
| Request(Message) |
Envia um pedido baseado em mensagem e devolve a resposta correlacionada baseada em mensagens. |
| Request(Message, TimeSpan) |
Envia um pedido baseado em mensagem e retorna a resposta correlacionada baseada em mensagens dentro de um intervalo de tempo especificado. |
Request(Message)
- Origem:
- IRequestChannel.cs
- Origem:
- IRequestChannel.cs
- Origem:
- IRequestChannel.cs
Envia um pedido baseado em mensagem e devolve a resposta correlacionada baseada em mensagens.
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
Parâmetros
Devoluções
Receberam Message em resposta ao pedido.
Exemplos
O código seguinte mostra como implementar este método:
public Message Request(Message message)
{
return this.InnerChannel.Request(message);
}
Observações
Implementações de IRequestChannel garantir que a mensagem de resposta está correlacionada com a mensagem de pedido.
Geralmente, se uma implementação de IRequestChannel recebe uma mensagem que não está correlacionada com um pedido pendente, esta é cancelada.
O Request método pode ser chamado simultaneamente através de múltiplos threads.
Passar a mensagem para o canal de pedido faz com que a mensagem seja acedida. Depois de ligar Request, já não pode inspecionar a mensagem nem ligar Close sobre a mensagem.
Se a mensagem de pedido for maior do que o tamanho máximo permitido pela ligação utilizada, a QuotaExceededException é lançado. O tamanho máximo da mensagem é definido pela MaxReceivedMessageSize propriedade. O valor padrão é 65536 bytes.
Aplica-se a
Request(Message, TimeSpan)
- Origem:
- IRequestChannel.cs
- Origem:
- IRequestChannel.cs
- Origem:
- IRequestChannel.cs
Envia um pedido baseado em mensagem e retorna a resposta correlacionada baseada em mensagens dentro de um intervalo de tempo especificado.
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
Parâmetros
- timeout
- TimeSpan
O TimeSpan que especifica o intervalo de tempo dentro do qual uma resposta deve ser recebida.
Devoluções
Receberam Message em resposta ao pedido.
Exemplos
O código seguinte mostra como implementar este método.
public Message Request(Message message, TimeSpan timeout)
{
return this.InnerChannel.Request(message, timeout);
}
Observações
Implementações de IRequestChannel garantir que a mensagem de resposta está correlacionada com a mensagem de pedido.
Geralmente, se uma implementação de IRequestChannel recebe uma mensagem que não está correlacionada com um pedido pendente, esta é cancelada.
O Request método pode ser chamado simultaneamente através de múltiplos threads.
Passar a mensagem para o canal de pedido faz com que a mensagem seja acedida. Depois de ligar Request, já não pode inspecionar a mensagem nem ligar Close sobre a mensagem.
Se a mensagem de pedido for maior do que o tamanho máximo permitido pela ligação utilizada, a QuotaExceededException é lançado. O tamanho máximo da mensagem é definido pela MaxReceivedMessageSize propriedade. O valor padrão é 65536 bytes.
Se a timeout for passado ao chamar a função, então esse valor é usado. Se o SendTimeout for definido na ligação, então o valor na ligação é usado se não timeout for especificado ao chamar a função.
O DefaultSendTimeout é usado se não for especificado timeout nem na ligação nem durante a chamada da função. Este valor padrão é 1 minuto.
Notas para Implementadores
A operação deve lançar a TimeoutException se o especificado timeout for ultrapassado antes da operação ser concluída.