語言

SoapMessageStage 列舉

定義

指定 SOAP 訊息的處理階段。

public enum class SoapMessageStage
public enum SoapMessageStage
type SoapMessageStage = 
Public Enum SoapMessageStage
繼承
SoapMessageStage

欄位

名稱 值 Description
BeforeSerialize 1

這是即將被連載的舞台 SoapMessage 。

AfterSerialize 2

a 之後 SoapMessage 的階段是序列化的,但在 SOAP 訊息之前,會透過有線傳送。

BeforeDeserialize 4

在 a SoapMessage 之前的階段會從透過網路傳送的 SOAP 訊息中反序列化成物件。

AfterDeserialize 8

緊接著 a SoapMessage 的階段會從 SOAP 訊息反序列化成物件。

範例

以下範例是一個實作該 ProcessMessage 方法的 SOAP 擴充套件片段。 在該 ProcessMessage 方法中,a SoapMessage 的處理是針對特定於 SoapMessageStage的。

// Process the SOAP message received and write to log file.
void ProcessMessage( SoapMessage^ message )
{
   switch ( message->Stage )
   {
      case SoapMessageStage::BeforeSerialize:
         break;
      case SoapMessageStage::AfterSerialize:
         WriteOutput( message );
         break;
      case SoapMessageStage::BeforeDeserialize:
         WriteInput( message );
         break;
      case SoapMessageStage::AfterDeserialize:
         break;
      default:
         throw gcnew Exception( "invalid stage" );
   }
}
// Process the SOAP message received and write to log file.
public override void ProcessMessage(SoapMessage message)
{
   switch (message.Stage)
   {
      case SoapMessageStage.BeforeSerialize:
         break;
      case SoapMessageStage.AfterSerialize:
         WriteOutput( message );
         break;
      case SoapMessageStage.BeforeDeserialize:
         WriteInput( message );
         break;
      case SoapMessageStage.AfterDeserialize:
         break;
      default:
         throw new Exception("invalid stage");
   }
}
  ' Process the SOAP message received and write to log file.
  Public Overrides Sub ProcessMessage(message As SoapMessage)
     Select Case message.Stage
        Case SoapMessageStage.BeforeSerialize
        Case SoapMessageStage.AfterSerialize
           WriteOutput(message)
        Case SoapMessageStage.BeforeDeserialize
           WriteInput(message)
        Case SoapMessageStage.AfterDeserialize
        Case Else
              Throw New Exception("invalid stage")
     End Select
End Sub

備註

ASP.NET 提供一種可擴充機制,用於使用 SOAP 呼叫網路服務。 擴充機制 SoapExtension 圍繞著能在用戶端或伺服器訊息處理的特定階段檢查或修改訊息。 此枚舉指定了 的處理階段 SoapMessage。

下表顯示了 SOAP 用戶端與伺服器處理中每個階段的發生時間。

SoapMessageStage 處理過程中SoapClientMessage 處理過程中SoapServerMessage
AfterDeserialize 發生在包含 XML Web 服務方法呼叫回應的 SOAP 訊息被反序列化成物件之後,但客戶端尚未收到反序列化結果之前。 發生在包含代表 XML Web 服務方法調用的 SOAP 訊息的網路請求被反序列化成物件後,但在該物件上代表 XML Web 服務方法的方法被呼叫之前。
AfterSerialize 發生在用戶端呼叫 XML Web 服務方法並將參數序列化成 XML 後,但在包含該 XML 的 SOAP 訊息透過網路傳送之前。 發生在 XML Web 服務方法回傳且所有返回值序列化成 XML 之後,但在包含該 XML 的 SOAP 訊息透過網路傳送之前。
BeforeDeserialize 發生在收到來自 XML Web 服務方法調用的網路回應之後,但就在包含 SOAP 訊息的回應被反序列化成物件之前。 發生在包含 SOAP 訊息用於 XML Web 服務方法調用的網路請求被網頁伺服器接收後,但在 SOAP 訊息被反序列化成物件之前。
BeforeSerialize 發生在用戶端呼叫 XML Web 服務方法之後,但在呼叫序列化之前。 此現象發生在呼叫 XML Web 服務方法回傳之後,但在回傳值序列化並透過線路回傳給用戶端之前。

適用於

另請參閱