SoapMessage Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Representa os dados em uma solicitação SOAP ou resposta SOAP em um determinado SoapMessageStage.
public ref class SoapMessage abstract
public abstract class SoapMessage
type SoapMessage = class
Public MustInherit Class SoapMessage
- Herança
-
SoapMessage
- Derivado
Exemplos
// 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
Comentários
O uso primário da SoapMessage classe é para extensões SOAP, representando os dados em uma solicitação SOAP ou resposta SOAP. Quando o ProcessMessage método é chamado, um SoapExtension recebe um SoapMessage em cada SoapMessageStage. Cabe à extensão SOAP específica escolher como processar o SoapMessage. As extensões SOAP comuns incluem criptografia e compactação.
As extensões SOAP podem ser aplicadas a um método de serviço Web XML ou a um método de serviço Web XML criado usando ASP.NET ou um cliente de serviço Web XML. Quando uma extensão SOAP é aplicada a um método de serviço Web XML, o ProcessMessage método recebe uma instância de SoapServerMessage, que deriva de SoapMessage. Da mesma forma, quando uma extensão SOAP é aplicada a um cliente de serviço Web XML, ProcessMessage recebe uma instância de SoapClientMessage.
Propriedades
Action |
Quando substituído em uma classe derivada, obtém o campo de cabeçalho de solicitação HTTP SOAPAction para a solicitação SOAP ou a resposta SOAP. |
ContentEncoding |
Obtém ou define o conteúdo do cabeçalho HTTP |
ContentType |
Obtém ou define o |
Exception |
Obtém o SoapException da chamada para o método de serviço Web XML. |
Headers |
Uma coleção dos cabeçalhos SOAP aplicados à solicitação ou resposta SOAP atual. |
MethodInfo |
Quando substituído em uma classe derivada, obtém uma representação do protótipo do método para o método de serviço Web XML para o qual a solicitação SOAP é direcionada. |
OneWay |
Obtém um valor que indica a propriedade OneWay do atributo SoapDocumentMethodAttribute ou SoapRpcMethodAttribute aplicado ao método de serviço Web XML. |
SoapVersion |
Obtém a versão do protocolo SOAP usada para comunicar-se com o serviço Web XML. |
Stage |
Obtém o SoapMessageStage do SoapMessage. |
Stream |
Obtém os dados que representa a solicitação SOAP ou a resposta SOAP na forma de um Stream. |
Url |
Quando substituído em uma classe derivada, obtém a URL base do serviço Web XML. |
Métodos
EnsureInStage() |
Quando substituído em uma classe derivada, declara que o SoapMessageStage atual é um estágio no qual os parâmetros estão disponíveis. |
EnsureOutStage() |
Quando substituído em uma classe derivada, declara que o estágio SoapMessageStage atual é um estágio em que os parâmetros de saída estão disponíveis. |
EnsureStage(SoapMessageStage) |
Garante que o SoapMessageStage da chamada para o método de serviço Web XML seja o estágio ou os estágios passados. Se o estágio de processamento atual não for um dos estágios passados, uma exceção será gerada. |
Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
GetHashCode() |
Serve como a função de hash padrão. (Herdado de Object) |
GetInParameterValue(Int32) |
Obtém o parâmetro passado para o método de serviço Web XML no índice especificado. |
GetOutParameterValue(Int32) |
Obtém o parâmetro de saída passado para o método de serviço Web XML no índice especificado. |
GetReturnValue() |
Obtém o valor retornado de um método de serviço Web XML. |
GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
MemberwiseClone() |
Cria uma cópia superficial do Object atual. (Herdado de Object) |
ToString() |
Retorna uma cadeia de caracteres que representa o objeto atual. (Herdado de Object) |