Condividi tramite


IOutputChannel.BeginSend Metodo

Definizione

Avvia un'operazione asincrona per inviare un messaggio.

Overload

BeginSend(Message, AsyncCallback, Object)

Inizia un'operazione asincrona per trasmettere un messaggio alla destinazione del canale di output.

BeginSend(Message, TimeSpan, AsyncCallback, Object)

Inizia un'operazione asincrona per trasmettere un messaggio alla destinazione del canale di output entro l'intervallo di tempo specificato.

BeginSend(Message, AsyncCallback, Object)

Origine:
IOutputChannel.cs
Origine:
IOutputChannel.cs

Inizia un'operazione asincrona per trasmettere un messaggio alla destinazione del canale di output.

public:
 IAsyncResult ^ BeginSend(System::ServiceModel::Channels::Message ^ message, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginSend (System.ServiceModel.Channels.Message message, AsyncCallback callback, object state);
abstract member BeginSend : System.ServiceModel.Channels.Message * AsyncCallback * obj -> IAsyncResult
Public Function BeginSend (message As Message, callback As AsyncCallback, state As Object) As IAsyncResult

Parametri

message
Message

Oggetto della classe Message inviato sul canale di output.

callback
AsyncCallback

Delegato AsyncCallback.

state
Object

Oggetto, specificato dall'applicazione, che contiene le informazioni sullo stato associate all'operazione asincrona di invio.

Restituisce

Interfaccia IAsyncResult che fa riferimento alla trasmissione del messaggio asincrono.

Esempio

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

public IAsyncResult BeginReceiveRequest(TimeSpan timeout, AsyncCallback callback, object state)
{
    ReceiveRequestAsyncResult result = new ReceiveRequestAsyncResult(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 BeginSend non garantisce che il messaggio venga recapitato all'endpoint remoto. Se sono necessarie garanzie di recapito, utilizzare IOutputSessionChannel.

Se il messaggio inviato è più grande rispetto alla dimensione massima del messaggio consentita dall'associazione in uso, dimensione del messaggio consentita dall'associazione utilizzata, viene generata una classe QuotaExceededException. La dimensione massima del messaggio viene impostata dalla proprietà MaxReceivedMessageSize. Il valore predefinito è 65536 byte.

Si applica a

BeginSend(Message, TimeSpan, AsyncCallback, Object)

Origine:
IOutputChannel.cs
Origine:
IOutputChannel.cs

Inizia un'operazione asincrona per trasmettere un messaggio alla destinazione del canale di output entro l'intervallo di tempo specificato.

public:
 IAsyncResult ^ BeginSend(System::ServiceModel::Channels::Message ^ message, TimeSpan timeout, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginSend (System.ServiceModel.Channels.Message message, TimeSpan timeout, AsyncCallback callback, object state);
abstract member BeginSend : System.ServiceModel.Channels.Message * TimeSpan * AsyncCallback * obj -> IAsyncResult
Public Function BeginSend (message As Message, timeout As TimeSpan, callback As AsyncCallback, state As Object) As IAsyncResult

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.

callback
AsyncCallback

Delegato AsyncCallback che riceve la notifica del completamento dell'operazione asincrona di invio.

state
Object

Oggetto, specificato dall'applicazione, che contiene le informazioni sullo stato associate all'operazione asincrona di invio.

Restituisce

IAsyncResult fa riferimento all'operazione asincrona di invio.

Esempio

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

public RequestContext EndReceiveRequest(IAsyncResult result)
{
    return ReceiveRequestAsyncResult.End(result);
}

Commenti

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

Il metodo BeginSend non garantisce che il messaggio venga recapitato all'endpoint remoto. Se sono necessarie garanzie di recapito, utilizzare IOutputSessionChannel.

Se il messaggio inviato è più grande rispetto alla dimensione massima del messaggio consentita dall'associazione in uso, dimensione del messaggio consentita dall'associazione utilizzata, viene generata una classe QuotaExceededException. La dimensione massima del messaggio viene impostata dalla proprietà MaxReceivedMessageSize. Il valore predefinito è 65536 byte.

Note per gli implementatori

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

Si applica a