This documentation is archived and is not being maintained.

SoapExtension.ProcessMessage Method

When overridden in a derived class, allows a SOAP extension to receive a SoapMessage to process at each SoapMessageStage.

Namespace: System.Web.Services.Protocols
Assembly: System.Web.Services (in system.web.services.dll)

public abstract void ProcessMessage (
	SoapMessage message
)
public abstract void ProcessMessage (
	SoapMessage message
)
public abstract function ProcessMessage (
	message : SoapMessage
)
Not applicable.

Parameters

message

The SoapMessage to process.

ProcessMessage is called at all SoapMessageStage stages for SOAP extensions applied to both XML Web services created using ASP.NET and their clients. At each SoapMessageStage, an instance of a class deriving from SoapMessage is passed to ProcessMessage. If the SOAP extension is running on the XML Web service client, then a SoapClientMessage object is passed into ProcessMessage; otherwise a SoapServerMessage object is passed in.

The following example is the ProcessMessage portion of a SOAP extension that logs SOAP requests and SOAP responses. By logging the SoapMessage at the AfterSerializeSoapMessageStage, the SOAP extension accesses the Stream to be sent over the wire. If the SOAP extension is applied to an XML Web service method created using ASP.NET, then the Stream contains the SOAP response from the XML Web service method. If the SOAP extension is applied to an XML Web service client, the Stream contains the SOAP request to an XML Web service method.

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;

        }
}


public void ProcessMessage(SoapMessage message)
{
    switch (message.get_Stage()) {
        case SoapMessageStage.BeforeSerialize :
            break;

        case SoapMessageStage.AfterSerialize :
            WriteOutput(message);
            break;

        case SoapMessageStage.BeforeDeserialize :
            WriteInput(message);
            break;

        case SoapMessageStage.AfterDeserialize :
            break;

    }
} //ProcessMessage

Windows 98, Windows Server 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

The Microsoft .NET Framework 3.0 is supported on Windows Vista, Microsoft Windows XP SP2, and Windows Server 2003 SP1.

.NET Framework

Supported in: 3.0, 2.0, 1.1, 1.0

.NET Compact Framework

Supported in: 2.0, 1.0
Show: