SoapClientMessage Classe
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Representa os dados num pedido SOAP enviado ou numa resposta SOAP recebida por um cliente de serviço Web XML num determinado SoapMessageStage. Esta classe não pode ser herdada.
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
- Herança
Exemplos
O seguinte fragmento de código faz parte de uma extensão SOAP que regista as mensagens SOAP enviadas e recebidas por um cliente de serviço Web XML. Este fragmento específico processa o SoapClientMessage passado no SoapExtension.ProcessMessage método da extensão SOAP escrevendo propriedades do SoapClientMessage no ficheiro de 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
Propriedades
| Name | Description |
|---|---|
| Action |
Recebe o |
| Client |
Obtém uma instância da classe proxy cliente, que deriva de SoapHttpClientProtocol. |
| ContentEncoding |
Obtém ou define o conteúdo do |
| ContentType |
Obtém ou define o HTTP |
| Exception |
Obtém o SoapException método da chamada para o serviço Web XML. (Herdado de SoapMessage) |
| Headers |
Uma coleção dos cabeçalhos SOAP aplicada ao pedido SOAP atual ou resposta SOAP. (Herdado de SoapMessage) |
| MethodInfo |
Obtém uma representação do protótipo do método do serviço Web XML para o qual o pedido SOAP se destina. |
| OneWay |
Obtém um valor que indica se o cliente espera que o servidor termine de processar um método de serviço Web XML. |
| SoapVersion |
Obtém a versão do protocolo SOAP usada para comunicar com o serviço Web XML. |
| Stage |
Obtém o SoapMessageStage do SoapMessage. (Herdado de SoapMessage) |
| Stream |
Obtém os dados que representam o pedido SOAP ou resposta SOAP sob a forma de um Stream. (Herdado de SoapMessage) |
| Url |
Obtém a URL do serviço Web XML. |
Métodos
| Name | Description |
|---|---|
| EnsureInStage() |
Quando sobrescrito numa classe derivada, afirma que a corrente SoapMessageStage é um estágio onde os parâmetros estão disponíveis. (Herdado de SoapMessage) |
| EnsureOutStage() |
Quando sobrescrito numa classe derivada, afirma que o estágio atual SoapMessageStage é um estágio onde os parâmetros de saída estão disponíveis. (Herdado de SoapMessage) |
| EnsureStage(SoapMessageStage) |
Assegura que a SoapMessageStage chamada para o método do serviço Web XML é a etapa ou etapas passadas. Se a etapa de processamento atual não for uma das etapas encaminhadas, é lançada uma exceção. (Herdado de SoapMessage) |
| Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
| GetHashCode() |
Serve como função de hash predefinida. (Herdado de Object) |
| GetInParameterValue(Int32) |
Faz com que o parâmetro passe para o método do serviço Web XML no índice especificado. (Herdado de SoapMessage) |
| GetOutParameterValue(Int32) |
Faz com que o parâmetro out seja passado para o método do serviço Web XML no índice especificado. (Herdado de SoapMessage) |
| GetReturnValue() |
Obtém o valor de retorno de um método de serviço Web XML. (Herdado de SoapMessage) |
| GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
| MemberwiseClone() |
Cria uma cópia superficial do atual Object. (Herdado de Object) |
| ToString() |
Devolve uma cadeia que representa o objeto atual. (Herdado de Object) |