IOutputChannel.Send Metodo

Definizione

Invia un messaggio sul canale di output corrente.

Overload

Send(Message)

Trasmette un messaggio alla destinazione del canale di output.

Send(Message, TimeSpan)

Invia un messaggio sul canale di output corrente entro l'intervallo di tempo specificato.

Send(Message)

Trasmette un messaggio alla destinazione del canale di output.

public:
 void Send(System::ServiceModel::Channels::Message ^ message);
public void Send (System.ServiceModel.Channels.Message message);
abstract member Send : System.ServiceModel.Channels.Message -> unit
Public Sub Send (message As Message)

Parametri

message
Message

Oggetto della classe Message inviato sul canale di output.

Esempio

Nell'esempio di codice seguente viene illustrato come implementare questo metodo:

public IAsyncResult BeginTryReceiveRequest(TimeSpan timeout, AsyncCallback callback, object state)
{
    TryReceiveRequestAsyncResult result = new TryReceiveRequestAsyncResult(this, timeout, callback, state);
    result.Begin();
    return result;
}

Commenti

La destinazione per messaggi inviati su un canale di output è specificata al momento della creazione del canale.

Il metodo Send non garantisce che il messaggio venga recapitato all'endpoint remoto. Un'implementazione di IOutputChannel può rilasciare silenziosamente messaggi per molteplici ragioni. Nel buffer, ad esempio, potrebbe non esserci più spazio. Se sono necessarie garanzie di recapito, utilizzare IOutputSessionChannel.

Il passaggio del messaggio nel canale di output fa sì che venga utilizzato. Dopo aver effettuato la chiamata a Send, non è più possibile controllare il messaggio o chiamare Close sul messaggio.

Si applica a

Send(Message, TimeSpan)

Invia un messaggio sul canale di output corrente entro l'intervallo di tempo specificato.

public:
 void Send(System::ServiceModel::Channels::Message ^ message, TimeSpan timeout);
public void Send (System.ServiceModel.Channels.Message message, TimeSpan timeout);
abstract member Send : System.ServiceModel.Channels.Message * TimeSpan -> unit
Public Sub Send (message As Message, timeout As TimeSpan)

Parametri

message
Message

Oggetto della classe Message inviato sul canale di output.

timeout
TimeSpan

L'oggetto TimeSpan che specifica il tempo disponibile per il completamento prima del timeout dell'operazione di invio.

Esempio

Nell'esempio di codice seguente viene illustrato come implementare questo metodo:

public bool EndTryReceiveRequest(IAsyncResult result, out RequestContext requestContext)
{
    return TryReceiveRequestAsyncResult.End(result, out requestContext);
}

Commenti

La destinazione per messaggi inviati su un canale di output è specificata al momento della creazione del canale.

Il metodo Send non garantisce che il messaggio venga recapitato all'endpoint remoto. Un'implementazione di IOutputChannel può rilasciare silenziosamente messaggi per molteplici ragioni. Nel buffer, ad esempio, potrebbe non esserci più spazio. Se sono necessarie garanzie di recapito, utilizzare IOutputSessionChannel.

Il passaggio del messaggio nel canale di output fa sì che venga utilizzato. Dopo aver effettuato la chiamata a Send, non è più possibile controllare il messaggio o chiamare Close sul messaggio.

Note per gli implementatori

L'operazione dovrebbe generare un'eccezione TimeoutException se viene superato il timeout specificato.

Si applica a