SoapClientMessage クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
送信された SOAP 要求内のデータ、または XML Web サービス クライアントが特定の SoapMessageStageで受信した SOAP 応答を表します。 このクラスは継承できません。
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
- 継承
例
次のコード フラグメントは、XML Web サービス クライアントによって送受信される SOAP メッセージをログに記録する SOAP 拡張機能の一部です。 この特定のフラグメントは、SoapClientMessageのプロパティをログ ファイルに書き込むことで、SOAP 拡張機能のSoapExtension.ProcessMessage メソッドに渡されるSoapClientMessageを処理します。
// 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
プロパティ
| 名前 | 説明 |
|---|---|
| Action |
SOAP 要求または SOAP 応答の |
| Client |
SoapHttpClientProtocolから派生するクライアント プロキシ クラスのインスタンスを取得します。 |
| ContentEncoding |
|
| ContentType |
SOAP 要求または SOAP 応答の HTTP |
| Exception |
XML Web サービス メソッドの呼び出しから SoapException を取得します。 (継承元 SoapMessage) |
| Headers |
現在の SOAP 要求または SOAP 応答に適用される SOAP ヘッダーのコレクション。 (継承元 SoapMessage) |
| MethodInfo |
SOAP 要求の対象となる XML Web サービス メソッドのメソッド プロトタイプの表現を取得します。 |
| OneWay |
サーバーが XML Web サービス メソッドの処理を完了するのをクライアントが待機するかどうかを示す値を取得します。 |
| SoapVersion |
XML Web サービスとの通信に使用される SOAP プロトコルのバージョンを取得します。 |
| Stage |
SoapMessageStageのSoapMessageを取得します。 (継承元 SoapMessage) |
| Stream |
SOAP 要求または SOAP 応答を表すデータを Streamの形式で取得します。 (継承元 SoapMessage) |
| Url |
XML Web サービスの URL を取得します。 |
メソッド
| 名前 | 説明 |
|---|---|
| EnsureInStage() |
派生クラスでオーバーライドされると、現在の SoapMessageStage がパラメーターで使用できるステージであることをアサートします。 (継承元 SoapMessage) |
| EnsureOutStage() |
派生クラスでオーバーライドされると、現在の SoapMessageStage ステージが out パラメーターを使用できるステージであることをアサートします。 (継承元 SoapMessage) |
| EnsureStage(SoapMessageStage) |
XML Web サービス メソッドの呼び出しの SoapMessageStage が、渡されたステージであることを確認します。 現在の処理ステージが渡されたステージの 1 つでない場合は、例外がスローされます。 (継承元 SoapMessage) |
| Equals(Object) |
指定したオブジェクトが現在のオブジェクトと等しいかどうかを判断します。 (継承元 Object) |
| GetHashCode() |
既定のハッシュ関数として機能します。 (継承元 Object) |
| GetInParameterValue(Int32) |
指定したインデックス位置にある XML Web サービス メソッドに渡されるパラメーターを取得します。 (継承元 SoapMessage) |
| GetOutParameterValue(Int32) |
指定したインデックス位置にある XML Web サービス メソッドに渡される out パラメーターを取得します。 (継承元 SoapMessage) |
| GetReturnValue() |
XML Web サービス メソッドの戻り値を取得します。 (継承元 SoapMessage) |
| GetType() |
現在のインスタンスの Type を取得します。 (継承元 Object) |
| MemberwiseClone() |
現在の Objectの簡易コピーを作成します。 (継承元 Object) |
| ToString() |
現在のオブジェクトを表す文字列を返します。 (継承元 Object) |