IOutputChannel.Send 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
在目前的輸出通道上傳送訊息。
多載
Send(Message) |
將訊息傳送到輸出通道的目的端。 |
Send(Message, TimeSpan) |
於指定的時間間隔內在目前的輸出通道上傳送訊息。 |
Send(Message)
將訊息傳送到輸出通道的目的端。
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)
參數
範例
下列程式碼說明如何實作這個方法:
public IAsyncResult BeginTryReceiveRequest(TimeSpan timeout, AsyncCallback callback, object state)
{
TryReceiveRequestAsyncResult result = new TryReceiveRequestAsyncResult(this, timeout, callback, state);
result.Begin();
return result;
}
備註
在輸出通道上送出之訊息的目的端會在通道建立時指定。
Send 方法不保證會將訊息傳送到遠端端點。 IOutputChannel 的實作 (Implementation) 能夠以無訊息模式針對各種原因卸除訊息。 例如,可能沒有其他緩衝區空間。 如果需要傳遞保證,請使用 IOutputSessionChannel。
將訊息傳遞給輸出通道會造成該訊息的取用。 當您呼叫 Send 之後,便無法再檢查此訊息,或針對此訊息呼叫 Close。
適用於
Send(Message, TimeSpan)
於指定的時間間隔內在目前的輸出通道上傳送訊息。
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)
參數
範例
下列程式碼說明如何實作這個方法:
public bool EndTryReceiveRequest(IAsyncResult result, out RequestContext requestContext)
{
return TryReceiveRequestAsyncResult.End(result, out requestContext);
}
備註
在輸出通道上送出之訊息的目的端會在通道建立時指定。
Send 方法不保證會將訊息傳送到遠端端點。 IOutputChannel 的實作 (Implementation) 能夠以無訊息模式針對各種原因卸除訊息。 例如,可能沒有其他緩衝區空間。 如果需要傳遞保證,請使用 IOutputSessionChannel。
將訊息傳遞給輸出通道會造成該訊息的取用。 當您呼叫 Send 之後,便無法再檢查此訊息,或針對此訊息呼叫 Close。
給實施者的注意事項
如果超出了指定的 TimeoutException,則此作業應該擲回 timeout
。