SoapMessage Klasse

Definition

Stellt die Daten in einer SOAP-Anforderung oder SOAP-Antwort auf einer bestimmten SoapMessageStage dar.Represents the data in a SOAP request or SOAP response at a specific SoapMessageStage.

public ref class SoapMessage abstract
public abstract class SoapMessage
type SoapMessage = class
Public MustInherit Class SoapMessage
Vererbung
SoapMessage
Abgeleitet

Beispiele

// Process the SOAP message received and write to log file.
virtual void ProcessMessage( SoapMessage^ message ) override
{
   switch ( message->Stage )
   {
      case SoapMessageStage::BeforeSerialize:
         WriteOutputBeforeSerialize( message );
         break;
      case SoapMessageStage::AfterSerialize:
         WriteOutputAfterSerialize( message );
         break;
      case SoapMessageStage::BeforeDeserialize:
         WriteInputBeforeDeserialize( message );
         break;
      case SoapMessageStage::AfterDeserialize:
         WriteInputAfterDeserialize( message );
         break;
      default:
         throw gcnew Exception( "invalid stage" );
   }
}

// Write the contents of the outgoing SOAP message to the log file.
void WriteOutputBeforeSerialize( SoapMessage^ message )
{
   FileStream^ myFileStream =
      gcnew FileStream( filename, FileMode::Append, FileAccess::Write );
   StreamWriter^ myStreamWriter = gcnew StreamWriter( myFileStream );
   myStreamWriter->WriteLine( "================================== Request at {0}",
      DateTime::Now );
   
   myStreamWriter->WriteLine(
      "The method that has been invoked is: " );
   myStreamWriter->WriteLine( "\t{0}", message->MethodInfo );

   myStreamWriter->WriteLine( "The contents of the SOAPAction HTTP header is:" );
   myStreamWriter->WriteLine( "\t{0}", message->Action );

   myStreamWriter->WriteLine( "The contents of HTTP Content-type header is:" );
   myStreamWriter->WriteLine( "\t{0}", message->ContentType );

   if ( message->OneWay )
   {
      myStreamWriter->WriteLine(
         "The method invoked on the client shall not wait"
         + " till the server finishes" );
   }
   else
   {
      myStreamWriter->WriteLine(
         "The method invoked on the client shall wait"
         + " till the server finishes" );
   }

   myStreamWriter->WriteLine(
      "The site where the XML Web service is available is:" );
   myStreamWriter->WriteLine( "\t{0}", message->Url );

   myStreamWriter->WriteLine( "The values of the in parameters are:" );
   myStreamWriter->WriteLine(
      "Value of first in parameter: {0}", message->GetInParameterValue( 0 ) );
   myStreamWriter->WriteLine(
      "Value of second in parameter: {0}", message->GetInParameterValue( 1 ) );

   myStreamWriter->WriteLine();
   myStreamWriter->Flush();
   myStreamWriter->Close();
   myFileStream->Close();
}

// Write the contents of the incoming SOAP message to the log file.
void WriteInputAfterDeserialize( SoapMessage^ message )
{
   FileStream^ myFileStream =
      gcnew FileStream( filename, FileMode::Append, FileAccess::Write );
   StreamWriter^ myStreamWriter = gcnew StreamWriter( myFileStream );
   myStreamWriter->WriteLine();
   
   myStreamWriter->WriteLine( "The values of the out parameter are:" );
   myStreamWriter->WriteLine(
      "The value of the out parameter is: {0}", message->GetOutParameterValue( 0 ) );

   myStreamWriter->WriteLine( "The values of the return parameter are:" );
   myStreamWriter->WriteLine(
      "The value of the return parameter is: {0}", message->GetReturnValue() );

   myStreamWriter->Flush();
   myStreamWriter->Close();
   myFileStream->Close();
}
// Process the SOAP message received and write to log file.
public override void ProcessMessage(SoapMessage message) 
{
   switch (message.Stage) 
   {
      case SoapMessageStage.BeforeSerialize:
         WriteOutputBeforeSerialize(message);
         break;
      case SoapMessageStage.AfterSerialize:
         WriteOutputAfterSerialize(message);
         break;
      case SoapMessageStage.BeforeDeserialize:
         WriteInputBeforeDeserialize(message);
         break;
      case SoapMessageStage.AfterDeserialize:
         WriteInputAfterDeserialize(message);
         break;
      default:
         throw new Exception("invalid stage");
   }
}

// Write the contents of the outgoing SOAP message to the log file.
public void WriteOutputBeforeSerialize(SoapMessage message)
{
   FileStream myFileStream = 
      new FileStream(filename, FileMode.Append, FileAccess.Write);
   StreamWriter myStreamWriter = new StreamWriter(myFileStream);
   myStreamWriter.WriteLine("================================== Request at "
      + DateTime.Now);
   myStreamWriter.WriteLine("The method that has been invoked is: ");
   myStreamWriter.WriteLine("\t" + message.MethodInfo);
   myStreamWriter.WriteLine(
      "The contents of the SOAPAction HTTP header is:");
   myStreamWriter.WriteLine("\t" + message.Action);
   myStreamWriter.WriteLine("The contents of HTTP Content-type header is:");
   myStreamWriter.WriteLine("\t" + message.ContentType);
   if(message.OneWay)
      myStreamWriter.WriteLine(
         "The method invoked on the client shall not wait"
         + " till the server finishes");
   else
      myStreamWriter.WriteLine(
         "The method invoked on the client shall wait"
         + " till the server finishes");
   myStreamWriter.WriteLine(
      "The site where the XML Web service is available is:");
   myStreamWriter.WriteLine("\t" + message.Url);
   myStreamWriter.WriteLine("The values of the in parameters are:");
   myStreamWriter.WriteLine("Value of first in parameter: {0}",
      message.GetInParameterValue(0));
   myStreamWriter.WriteLine("Value of second in parameter: {0}",
      message.GetInParameterValue(1));
   myStreamWriter.WriteLine();
   myStreamWriter.Flush();
   myStreamWriter.Close();
   myFileStream.Close();
}

// Write the contents of the incoming SOAP message to the log file.
public void WriteInputAfterDeserialize(SoapMessage message)
{
   FileStream myFileStream = 
      new FileStream(filename, FileMode.Append, FileAccess.Write);
   StreamWriter myStreamWriter = new StreamWriter(myFileStream);
   myStreamWriter.WriteLine();
   myStreamWriter.WriteLine("The values of the out parameter are:");
   myStreamWriter.WriteLine("The value of the out parameter is: {0}",
      message.GetOutParameterValue(0));
   myStreamWriter.WriteLine("The values of the return parameter are:");
   myStreamWriter.WriteLine("The value of the return parameter is: {0}",
      message.GetReturnValue());
   myStreamWriter.Flush();
   myStreamWriter.Close();
   myFileStream.Close();
}

' Process the SOAP message received and write to log file.
Public Overrides Sub ProcessMessage(message As SoapMessage)
   Select Case message.Stage
      Case SoapMessageStage.BeforeSerialize
         WriteOutputBeforeSerialize(message)
      Case SoapMessageStage.AfterSerialize
         WriteOutputAfterSerialize(message)
      Case SoapMessageStage.BeforeDeserialize
         WriteInputBeforeDeserialize(message)
      Case SoapMessageStage.AfterDeserialize
         WriteInputAfterDeserialize(message)
      Case Else
            Throw New Exception("invalid stage")
   End Select
End Sub

' Write the contents of the outgoing SOAP message to the log file.
Public Sub WriteOutputBeforeSerialize(message As SoapMessage)
   Dim myFileStream As New FileStream( _
      filename, FileMode.Append, FileAccess.Write)
   Dim myStreamWriter As New StreamWriter(myFileStream)
   myStreamWriter.WriteLine( _
      "================================== Request at " & _
      DateTime.Now)
   myStreamWriter.WriteLine("The method that has been invoked is: ")
   myStreamWriter.WriteLine(ControlChars.Tab & message.MethodInfo.ToString())
   myStreamWriter.WriteLine("The contents of the SOAPAction HTTP header is:")
   myStreamWriter.WriteLine(ControlChars.Tab & message.Action)
   myStreamWriter.WriteLine("The contents of HTTP Content-type header is:")
   myStreamWriter.WriteLine(ControlChars.Tab & message.ContentType)
   If message.OneWay Then
      myStreamWriter.WriteLine( _
         "The method invoked on the client shall not wait" & _
         " till the server finishes")
   Else
      myStreamWriter.WriteLine( _
         "The method invoked on the client shall wait" & _
         " till the server finishes")
   End If
   myStreamWriter.WriteLine( _
      "The site where the XML Web service is available is: ")
   myStreamWriter.WriteLine(ControlChars.Tab & message.Url)
   myStreamWriter.WriteLine("The values of the in parameters are:")
   myStreamWriter.WriteLine("Value of first in parameter: {0}", _
      message.GetInParameterValue(0))
   myStreamWriter.WriteLine("Value of second in parameter: {0}", _
      message.GetInParameterValue(1))
   myStreamWriter.WriteLine()
   myStreamWriter.Flush()
   myStreamWriter.Close()
   myFileStream.Close()
End Sub

' Write the contents of the incoming SOAP message to the log file.
Public Sub WriteInputAfterDeserialize(message As SoapMessage)
   Dim myFileStream As _
      New FileStream(filename, FileMode.Append, FileAccess.Write)
   Dim myStreamWriter As New StreamWriter(myFileStream)
   myStreamWriter.WriteLine()
   myStreamWriter.WriteLine("The values of the out parameter are:")
   myStreamWriter.WriteLine("The value of the out parameter is: {0}", _
      message.GetOutParameterValue(0))
   myStreamWriter.WriteLine("The values of the return parameter are:")
   myStreamWriter.WriteLine("The value of the return parameter is: {0}", _
      message.GetReturnValue())
   myStreamWriter.Flush()
   myStreamWriter.Close()
   myFileStream.Close()
End Sub

Hinweise

Die primäre Verwendung SoapMessage der-Klasse ist für SOAP-Erweiterungen, die die Daten in einer SOAP-Anforderung oder SOAP-Antwort darstellen.The primary use of the SoapMessage class is for SOAP extensions, representing the data in a SOAP request or SOAP response. Wenn die ProcessMessage -Methode aufgerufen wird, SoapExtension empfängt SoapMessage ein bei jeder SoapMessageStage.When the ProcessMessage method is called, a SoapExtension receives a SoapMessage at each SoapMessageStage. Es ist für die jeweilige SOAP-Erweiterung möglich, auszuwählen, wie das SoapMessageverarbeitet werden soll.It is up to the particular SOAP extension to choose how to process the SoapMessage. Zu den allgemeinen SOAP-Erweiterungen gehören Verschlüsselung und Komprimierung.Common SOAP extensions include encryption and compression.

SOAP-Erweiterungen können entweder auf eine oder eine XML-Webdienst Methode angewendet werden, die mit ASP.net oder einem XML-Webdienst Client erstellt wurde.SOAP extensions can be applied to either or both an XML Web service method created using ASP.NET or an XML Web service client. Wenn eine SOAP-Erweiterung auf eine XML-Webdienst Methode angewendet wird ProcessMessage , empfängt die Methode eine SoapServerMessageInstanz von, die SoapMessagevon abgeleitet wird.When a SOAP extension is applied to an XML Web service method, the ProcessMessage method receives an instance of SoapServerMessage, which derives from SoapMessage. Wenn eine SOAP-Erweiterung auf einen XML-Webdienst Client angewendet wird, ProcessMessage empfängt ebenso eine Instanz SoapClientMessagevon.Likewise, when a SOAP extension is applied to an XML Web service client, ProcessMessage receives an instance of SoapClientMessage.

Eigenschaften

Action

Ruft beim Überschreiben in einer abgeleiteten Klasse das Feld des HTTP-Anforderungsheaders SOAPAction für die SOAP-Anforderung oder die SOAP-Antwort ab.When overridden in a derived class, gets the SOAPAction HTTP request header field for the SOAP request or SOAP response.

ContentEncoding

Ruft die Inhalte des Content-Encoding-HTTP-Headers ab oder legt diese fest.Gets or sets the contents of the Content-Encoding HTTP header.

ContentType

Ruft den HTTP-Content-Type der SOAP-Anforderung oder der SOAP-Antwort ab oder legt diesen fest.Gets or sets the HTTP Content-Type of the SOAP request or SOAP response.

Exception

Ruft die SoapException aus dem Aufruf an die XML-Webdienstmethode ab.Gets the SoapException from the call to the XML Web service method.

Headers

Eine Auflistung der auf die aktuelle SOAP-Anforderung oder SOAP-Antwort angewendeten SOAP-Header.A collection of the SOAP headers applied to the current SOAP request or SOAP response.

MethodInfo

Ruft beim Überschreiben in einer abgeleiteten Klasse eine Darstellung des Methodenprototyps für die XML-Webdienstmethode ab, für die die SOAP-Anforderung bestimmt ist.When overridden in a derived class, gets a representation of the method prototype for the XML Web service method for which the SOAP request is intended.

OneWay

Ruft einen Wert ab, der die OneWay-Eigenschaft des SoapDocumentMethodAttribute-Attributs oder des SoapRpcMethodAttribute-Attributs angibt, das auf die XML-Webdienstmethode angewendet wurde.Gets a value indicating the OneWay property of either the SoapDocumentMethodAttribute or the SoapRpcMethodAttribute attribute applied to the XML Web service method.

SoapVersion

Ruft die Version des für die Kommunikation mit dem XML-Webdienst verwendeten SOAP-Protokolls ab.Gets the version of the SOAP protocol used to communicate with the XML Web service.

Stage

Ruft den SoapMessageStage von SoapMessage ab.Gets the SoapMessageStage of the SoapMessage.

Stream

Ruft die Daten ab, die die SOAP-Anforderung oder die SOAP-Antwort in Form eines Stream darstellen.Gets the data representing the SOAP request or SOAP response in the form of a Stream.

Url

Ruft beim Überschreiben in einer abgeleiteten Klasse die Basis-URL des XML-Webdiensts ab.When overridden in a derived class, gets the base URL of the XML Web service.

Methoden

EnsureInStage()

Bestimmt beim Überschreiben in einer abgeleiteten Klasse, dass auf der aktuellen SoapMessageStage In-Parameter verfügbar sind.When overridden in a derived class, asserts that the current SoapMessageStage is a stage where in parameters are available.

EnsureOutStage()

Bestimmt beim Überschreiben in einer abgeleiteten Klasse, dass auf der aktuellen SoapMessageStage Out-Parameter verfügbar sind.When overridden in a derived class, asserts that the current SoapMessageStage stage is a stage where out parameters are available.

EnsureStage(SoapMessageStage)

Gewährleistet, dass SoapMessageStage des Aufrufs der XML-Webdienstmethode die Stufe oder Stufen sind, die übergeben wurden.Ensures that the SoapMessageStage of the call to the XML Web service method is the stage or stages passed in. Wenn die aktuelle Verarbeitungsstufe keine der übergebenen Stufen ist, wird eine Ausnahme ausgelöst.If the current processing stage is not one of the stages passed in, an exception is thrown.

Equals(Object)

Bestimmt, ob das angegebene Objekt mit dem aktuellen Objekt identisch ist.Determines whether the specified object is equal to the current object.

(Geerbt von Object)
GetHashCode()

Fungiert als Standardhashfunktion.Serves as the default hash function.

(Geerbt von Object)
GetInParameterValue(Int32)

Ruft den am angegebenen Index an die XML-Webdienstmethode übergebenen Parameter ab.Gets the parameter passed into the XML Web service method at the specified index.

GetOutParameterValue(Int32)

Ruft den am angegebenen Index an die XML-Webdienstmethode übergebenen Out-Parameter ab.Gets the out parameter passed into the XML Web service method at the specified index.

GetReturnValue()

Ruft den Rückgabewert einer XML-Webdienstmethode ab.Gets the return value of an XML Web service method.

GetType()

Ruft den Type der aktuellen Instanz ab.Gets the Type of the current instance.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.Creates a shallow copy of the current Object.

(Geerbt von Object)
ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.Returns a string that represents the current object.

(Geerbt von Object)

Gilt für: