SoapClientMessage Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Rappresenta i dati in una richiesta SOAP inviata o una risposta SOAP ricevuta da un client del servizio Web XML in un oggetto specifico SoapMessageStage. La classe non può essere ereditata.
public ref class SoapClientMessage sealed : System::Web::Services::Protocols::SoapMessage
public sealed class SoapClientMessage : System.Web.Services.Protocols.SoapMessage
type SoapClientMessage = class
inherit SoapMessage
Public NotInheritable Class SoapClientMessage
Inherits SoapMessage
- Ereditarietà
Esempio
Il frammento di codice seguente fa parte di un'estensione SOAP che registra i messaggi SOAP inviati e ricevuti da un client del servizio Web XML. Questo frammento specifico elabora l'oggetto SoapClientMessage passato al SoapExtension.ProcessMessage metodo dell'estensione SOAP scrivendo le proprietà dell'oggetto SoapClientMessage nel file di log.
// 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 );
}
// Process the SOAP message received and write to a log file.
public override void ProcessMessage(SoapMessage message)
{
switch (message.Stage)
{
case SoapMessageStage.BeforeSerialize:
break;
case SoapMessageStage.AfterSerialize:
WriteOutput((SoapClientMessage)message);
break;
case SoapMessageStage.BeforeDeserialize:
WriteInput((SoapClientMessage)message);
break;
case SoapMessageStage.AfterDeserialize:
break;
default:
throw new Exception("invalid stage");
}
}
// Write the contents of the outgoing SOAP message to the log file.
public void WriteOutput(SoapClientMessage message)
{
newStream.Position = 0;
FileStream myFileStream = new FileStream(filename, FileMode.Append,
FileAccess.Write);
StreamWriter myStreamWriter = new StreamWriter(myFileStream);
myStreamWriter.WriteLine(
"================================== Request at "
+ 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" + 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(typeof(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" + 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" + 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);
}
' Process the SOAP message received and write to a log file.
Public Overrides Sub ProcessMessage(message As SoapMessage)
Select Case message.Stage
Case SoapMessageStage.BeforeSerialize
Case SoapMessageStage.AfterSerialize
WriteOutput(CType(message, SoapClientMessage))
Case SoapMessageStage.BeforeDeserialize
WriteInput(CType(message, SoapClientMessage))
Case SoapMessageStage.AfterDeserialize
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 WriteOutput(message As SoapClientMessage)
newStream.Position = 0
Dim myFileStream As New FileStream(filename, FileMode.Append, _
FileAccess.Write)
Dim myStreamWriter As New StreamWriter(myFileStream)
myStreamWriter.WriteLine( _
"================================== Request at " & 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(ControlChars.Tab & 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(GetType(MathSvc)) Then
myStreamWriter.WriteLine(ControlChars.Tab & "MathSvc")
End If
' 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(ControlChars.Tab & message.MethodInfo.Name)
' Print to the log file if the method invoked is OneWay.
If message.OneWay Then
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")
End If
' 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(ControlChars.Tab & message.Url)
myStreamWriter.WriteLine("The contents of the SOAP envelope are: ")
myStreamWriter.Flush()
' Copy the contents of one stream to another.
Copy(newStream, myFileStream)
myStreamWriter.Close()
myFileStream.Close()
newStream.Position = 0
' Copy the contents of one stream to another.
Copy(newStream, oldStream)
End Sub
Proprietà
| Nome | Descrizione |
|---|---|
| Action |
Ottiene il |
| Client |
Ottiene un'istanza della classe proxy client, che deriva da SoapHttpClientProtocol. |
| ContentEncoding |
Ottiene o imposta il contenuto dell'intestazione |
| ContentType |
Ottiene o imposta l'HTTP |
| Exception |
Ottiene l'oggetto SoapException dalla chiamata al metodo del servizio Web XML. (Ereditato da SoapMessage) |
| Headers |
Raccolta di intestazioni SOAP applicate alla richiesta SOAP o alla risposta SOAP corrente. (Ereditato da SoapMessage) |
| MethodInfo |
Ottiene una rappresentazione del prototipo di metodo del metodo del servizio Web XML per il quale è prevista la richiesta SOAP. |
| OneWay |
Ottiene un valore che indica se il client attende che il server finisca l'elaborazione di un metodo di servizio Web XML. |
| SoapVersion |
Ottiene la versione del protocollo SOAP utilizzata per comunicare con il servizio Web XML. |
| Stage |
Ottiene l'oggetto SoapMessageStage dell'oggetto SoapMessage. (Ereditato da SoapMessage) |
| Stream |
Ottiene i dati che rappresentano la richiesta SOAP o la risposta SOAP sotto forma di .Stream (Ereditato da SoapMessage) |
| Url |
Ottiene l'URL del servizio Web XML. |
Metodi
| Nome | Descrizione |
|---|---|
| EnsureInStage() |
In caso di override in una classe derivata, afferma che l'oggetto corrente SoapMessageStage è una fase in cui sono disponibili i parametri. (Ereditato da SoapMessage) |
| EnsureOutStage() |
In caso di override in una classe derivata, afferma che la fase corrente SoapMessageStage è una fase in cui sono disponibili parametri out. (Ereditato da SoapMessage) |
| EnsureStage(SoapMessageStage) |
Assicura che l'oggetto SoapMessageStage della chiamata al metodo del servizio Web XML sia la fase o le fasi passate. Se la fase di elaborazione corrente non è una delle fasi passate, viene generata un'eccezione. (Ereditato da SoapMessage) |
| Equals(Object) |
Determina se l'oggetto specificato è uguale all'oggetto corrente. (Ereditato da Object) |
| GetHashCode() |
Funge da funzione hash predefinita. (Ereditato da Object) |
| GetInParameterValue(Int32) |
Ottiene il parametro passato al metodo del servizio Web XML in corrispondenza dell'indice specificato. (Ereditato da SoapMessage) |
| GetOutParameterValue(Int32) |
Ottiene il parametro out passato al metodo del servizio Web XML in corrispondenza dell'indice specificato. (Ereditato da SoapMessage) |
| GetReturnValue() |
Ottiene il valore restituito di un metodo di servizio Web XML. (Ereditato da SoapMessage) |
| GetType() |
Ottiene il Type dell'istanza corrente. (Ereditato da Object) |
| MemberwiseClone() |
Crea una copia superficiale del Objectcorrente. (Ereditato da Object) |
| ToString() |
Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object) |