SoapClientMessage Class

 

Represents the data in a SOAP request sent or a SOAP response received by an XML Web service client at a specific SoapMessageStage. This class cannot be inherited.

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

System::Object
  System.Web.Services.Protocols::SoapMessage
    System.Web.Services.Protocols::SoapClientMessage

public ref class SoapClientMessage sealed : SoapMessage

NameDescription
System_CAPS_pubpropertyAction

Gets the SOAPAction HTTP request header field for the SOAP request or SOAP response.(Overrides SoapMessage::Action.)

System_CAPS_pubpropertyClient

Gets an instance of the client proxy class, which derives from SoapHttpClientProtocol.

System_CAPS_pubpropertyContentEncoding

Gets or sets the contents of the Content-Encoding HTTP header.(Inherited from SoapMessage.)

System_CAPS_pubpropertyContentType

Gets or sets the HTTP Content-Type of the SOAP request or SOAP response.(Inherited from SoapMessage.)

System_CAPS_pubpropertyException

Gets the SoapException from the call to the XML Web service method.(Inherited from SoapMessage.)

System_CAPS_pubpropertyHeaders

A collection of the SOAP headers applied to the current SOAP request or SOAP response.(Inherited from SoapMessage.)

System_CAPS_pubpropertyMethodInfo

Gets a representation of the method prototype of the XML Web service method for which the SOAP request is intended.(Overrides SoapMessage::MethodInfo.)

System_CAPS_pubpropertyOneWay

Gets a value indicating whether the client waits for the server to finish processing an XML Web service method.(Overrides SoapMessage::OneWay.)

System_CAPS_pubpropertySoapVersion

Gets the version of the SOAP protocol used to communicate with the XML Web service.(Overrides SoapMessage::SoapVersion.)

System_CAPS_pubpropertyStage

Gets the SoapMessageStage of the SoapMessage.(Inherited from SoapMessage.)

System_CAPS_pubpropertyStream

Gets the data representing the SOAP request or SOAP response in the form of a Stream.(Inherited from SoapMessage.)

System_CAPS_pubpropertyUrl

Gets the URL of the XML Web service.(Overrides SoapMessage::Url.)

NameDescription
System_CAPS_pubmethodEquals(Object^)

Determines whether the specified object is equal to the current object.(Inherited from Object.)

System_CAPS_pubmethodGetHashCode()

Serves as the default hash function. (Inherited from Object.)

System_CAPS_pubmethodGetInParameterValue(Int32)

Gets the parameter passed into the XML Web service method at the specified index.(Inherited from SoapMessage.)

System_CAPS_pubmethodGetOutParameterValue(Int32)

Gets the out parameter passed into the XML Web service method at the specified index.(Inherited from SoapMessage.)

System_CAPS_pubmethodGetReturnValue()

Gets the return value of an XML Web service method.(Inherited from SoapMessage.)

System_CAPS_pubmethodGetType()

Gets the Type of the current instance.(Inherited from Object.)

System_CAPS_pubmethodToString()

Returns a string that represents the current object.(Inherited from Object.)

The following code fragment is part of a SOAP extension that logs the SOAP messages sent and received by an XML Web service client. This specific fragment processes the SoapClientMessage passed into the SoapExtension::ProcessMessage method of the SOAP extension by writing properties of the SoapClientMessage to the log file.

// Process the SOAP message received and write to a log file.
void ProcessMessage( SoapMessage^ message )
{
   switch ( message->Stage )
   {
      case SoapMessageStage::BeforeSerialize:
         break;
      case SoapMessageStage::AfterSerialize:
         WriteOutput( dynamic_cast<SoapClientMessage^>(message) );
         break;
      case SoapMessageStage::BeforeDeserialize:
         WriteInput( dynamic_cast<SoapClientMessage^>(message) );
         break;
      case SoapMessageStage::AfterDeserialize:
         break;
      default:
         throw gcnew Exception( "invalid stage" );
   }
}

// Write the contents of the outgoing SOAP message to the log file.
void WriteOutput( SoapClientMessage^ message )
{
   newStream->Position = 0;
   FileStream^ myFileStream = gcnew FileStream( filename, FileMode::Append,
      FileAccess::Write );
   StreamWriter^ myStreamWriter = gcnew StreamWriter( myFileStream );
   myStreamWriter->WriteLine(
      "================================== Request at {0}", DateTime::Now );

   // Print to the log file the request header field for SoapAction header.
   myStreamWriter->WriteLine( "The SoapAction Http request header field is: " );
   myStreamWriter->WriteLine( "\t{0}", message->Action );

   // Print to the log file the type of the client that invoked 
   // the XML Web service method.
   myStreamWriter->WriteLine( "The type of the client is: " );
   if ( (message->Client->GetType())->Equals( typeid<MathSvc^> ) )
   {
      myStreamWriter->WriteLine( "\tMathSvc" );
   }

   // Print to the log file the method invoked by the client.
   myStreamWriter->WriteLine(
      "The method that has been invoked by the client is:" );
   myStreamWriter->WriteLine( "\t{0}", message->MethodInfo->Name );

   // Print to the log file if the method invoked is OneWay.
   if ( message->OneWay )
   {
      myStreamWriter->WriteLine(
         "The client doesn't wait for the server to finish processing" );
   }
   else
   {
      myStreamWriter->WriteLine(
      "The client waits for the server to finish processing" );
   }

   // Print to the log file the URL of the site that provides 
   // implementation of the method.
   myStreamWriter->WriteLine(
      "The URL of the XML Web service method that has been requested is: " );
   myStreamWriter->WriteLine( "\t{0}", message->Url );
   myStreamWriter->WriteLine( "The contents of the SOAP envelope are: " );
   myStreamWriter->Flush();

   // Copy the contents of one stream to another. 
   Copy( newStream, myFileStream );
   myFileStream->Close();
   newStream->Position = 0;

   // Copy the contents of one stream to another. 
   Copy( newStream, oldStream );
}

.NET Framework
Available since 1.1

Any public static ( Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Return to top
Show: