SoapMessage Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Stellt die Daten in einer SOAP-Anforderung oder SOAP-Antwort an einem bestimmten 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 der SoapMessage Klasse ist für SOAP-Erweiterungen, die die Daten in einer SOAP-Anforderung oder SOAP-Antwort darstellen. Wenn die ProcessMessage Methode aufgerufen wird, empfängt SoapExtension eine SoapMessage an jedem SoapMessageStage. Es liegt an der bestimmten SOAP-Erweiterung, um auszuwählen, wie die SoapMessageDatei verarbeitet werden soll. Allgemeine SOAP-Erweiterungen umfassen Verschlüsselung und Komprimierung.
SOAP-Erweiterungen können entweder auf eine xml-Webdienstmethode angewendet werden, die mit ASP.NET oder einem XML-Webdienstclient erstellt wurde. Wenn eine SOAP-Erweiterung auf eine XML-Webdienstmethode angewendet wird, empfängt die ProcessMessage Methode eine Instanz von SoapServerMessage, die von SoapMessage. Wenn eine SOAP-Erweiterung auf einen XML-Webdienstclient angewendet wird, ProcessMessage empfängt ebenfalls eine Instanz von SoapClientMessage.
Eigenschaften
| Name | Beschreibung |
|---|---|
| Action |
Wenn sie in einer abgeleiteten Klasse überschrieben wird, ruft das SOAPAction HTTP-Anforderungsheaderfeld für die SOAP-Anforderung oder SOAP-Antwort ab. |
| ContentEncoding |
Dient zum Abrufen oder Festlegen des Inhalts des |
| ContentType |
Dient zum Abrufen oder Festlegen des HTTP |
| Exception |
Ruft den SoapException Aufruf der XML-Webdienstmethode ab. |
| Headers |
Eine Auflistung der SOAP-Header, die auf die aktuelle SOAP-Anforderung oder SOAP-Antwort angewendet werden. |
| MethodInfo |
Wenn sie in einer abgeleiteten Klasse überschrieben wird, ruft eine Darstellung des Methodenprototyps für die XML-Webdienstmethode ab, für die die SOAP-Anforderung vorgesehen ist. |
| OneWay |
Ruft einen Wert ab, der die OneWay Eigenschaft des SoapDocumentMethodAttribute oder des Attributs angibt, das SoapRpcMethodAttribute auf die XML-Webdienstmethode angewendet wird. |
| SoapVersion |
Ruft die Version des SOAP-Protokolls ab, das für die Kommunikation mit dem XML-Webdienst verwendet wird. |
| Stage |
Ruft den SoapMessageStage der .SoapMessage |
| Stream |
Ruft die Daten ab, die die SOAP-Anforderung oder SOAP-Antwort in Form einer Stream. |
| Url |
Beim Überschreiben in einer abgeleiteten Klasse ruft die Basis-URL des XML-Webdiensts ab. |
Methoden
| Name | Beschreibung |
|---|---|
| EnsureInStage() |
Wenn eine abgeleitete Klasse außer Kraft gesetzt wird, wird bestätigt, dass es sich bei der aktuellen SoapMessageStage Phase um eine Phase handelt, in der parameter verfügbar sind. |
| EnsureOutStage() |
Wenn sie in einer abgeleiteten Klasse überschrieben wird, wird bestätigt, dass die aktuelle SoapMessageStage Stufe eine Phase ist, in der Ausgabeparameter verfügbar sind. |
| EnsureStage(SoapMessageStage) |
Stellt sicher, dass der SoapMessageStage Aufruf der XML-Webdienstmethode die Phase oder Phasen ist, die übergeben werden. Wenn die aktuelle Verarbeitungsphase keine der übergebenen Phasen ist, wird eine Ausnahme ausgelöst. |
| Equals(Object) |
Bestimmt, ob das angegebene Objekt dem aktuellen Objekt entspricht. (Geerbt von Object) |
| GetHashCode() |
Dient als Standardhashfunktion. (Geerbt von Object) |
| GetInParameterValue(Int32) |
Ruft den Parameter ab, der an die XML-Webdienstmethode am angegebenen Index übergeben wird. |
| GetOutParameterValue(Int32) |
Ruft den out-Parameter ab, der an die XML-Webdienstmethode am angegebenen Index übergeben wird. |
| GetReturnValue() |
Ruft den Rückgabewert einer XML-Webdienstmethode ab. |
| GetType() |
Ruft die Type der aktuellen Instanz ab. (Geerbt von Object) |
| MemberwiseClone() |
Erstellt eine flache Kopie der aktuellen Object. (Geerbt von Object) |
| ToString() |
Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Geerbt von Object) |