次の方法で共有


SoapExtension.ProcessMessage メソッド

派生クラスでオーバーライドされると、SOAP 拡張機能は SoapMessage を受け取ってそれぞれの SoapMessageStage で処理できます。

Public MustOverride Sub ProcessMessage( _
   ByVal message As SoapMessage _)
[C#]
public abstract void ProcessMessage(SoapMessagemessage);
[C++]
public: virtual void ProcessMessage(SoapMessage* message) = 0;
[JScript]
public abstract function ProcessMessage(
   message : SoapMessage);

パラメータ

解説

ASP.NET と ASP.NET クライアントを使用して作成される両方の XML Web サービスに適用される SOAP 拡張機能のすべての SoapMessageStage 段階で、 ProcessMessage が呼び出されます。それぞれの SoapMessageStage で、 SoapMessage から派生したクラスのインスタンスが ProcessMessage に渡されます。SOAP 拡張機能が XML Web サービス クライアント上で実行中の場合は、 SoapClientMessage オブジェクトが ProcessMessage に渡されます。それ以外の場合は、 SoapServerMessage オブジェクトが渡されます。

使用例

[Visual Basic, C#, C++] SOAP 要求と SOAP 応答のログを作成する SOAP 拡張機能の ProcessMessage 部分の例を次に示します。SOAP 拡張機能は、 AfterSerialize SoapMessageStageSoapMessage のログを作成することにより、ワイヤ上で送信される予定の Stream にアクセスします。SOAP 拡張機能を ASP.NET で作成された XML Web サービス メソッドに適用する場合は、 Stream に XML Web サービス メソッドからの SOAP 応答が格納されます。SOAP 拡張機能を XML Web サービス クライアントに適用する場合は、 Stream に XML Web サービス メソッドへの SOAP 要求が格納されます。

 
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    


[C#] 
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");
        }
}


[C++] 
public:
    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(S"invalid stage");
        }
    }

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET

参照

SoapExtension クラス | SoapExtension メンバ | System.Web.Services.Protocols 名前空間