SoapMessage 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
특정 SoapMessageStage에 있는 SOAP 요청이나 SOAP 응답의 데이터를 나타냅니다.
public ref class SoapMessage abstract
public abstract class SoapMessage
type SoapMessage = class
Public MustInherit Class SoapMessage
- 상속
-
SoapMessage
- 파생
예제
// 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
설명
기본 용도 SoapMessage 클래스는 SOAP 확장의 경우는 SOAP 요청이 나 SOAP 응답에서 데이터를 나타내는입니다. 경우는 ProcessMessage 메서드가 호출 되는 SoapExtension 수신를 SoapMessage 각 SoapMessageStage합니다. 작업은 처리 하는 방법을 선택 하려면 특정 SOAP 확장이 담당 합니다 SoapMessage합니다. 일반적인 SOAP 확장에는 암호화 및 압축 포함 됩니다.
SOAP 확장을 적용할 수 또는 ASP.NET 또는 XML 웹 서비스 클라이언트를 사용 하 여 두 XML 웹 서비스 메서드를 생성 합니다. XML 웹 서비스 메서드에 SOAP 확장이 적용 되 면 합니다 ProcessMessage 메서드는 인스턴스를 받아서 SoapServerMessage에서 파생 되는 SoapMessage합니다. 마찬가지로, SOAP 확장이 적용 되는 경우 XML 웹 서비스 클라이언트를 ProcessMessage 인스턴스를 받아서 SoapClientMessage합니다.
속성
Action |
파생 클래스에서 재정의된 경우 SOAP 요청이나 SOAP 응답에 대한 SOAPAction HTTP 요청 헤더 필드를 가져옵니다. |
ContentEncoding |
|
ContentType |
SOAP 요청이나 SOAP 응답의 HTTP |
Exception |
XML Web services 메서드에 대한 호출에서 SoapException을 가져옵니다. |
Headers |
현재 SOAP 요청이나 SOAP 응답에 적용된 SOAP 헤더의 컬렉션입니다. |
MethodInfo |
파생 클래스에서 재정의된 경우 해당 SOAP 요청이 사용되는 XML Web services 메서드에 대한 메서드 프로토타입 표현을 가져옵니다. |
OneWay |
XML Web services 메서드에 적용된 OneWay 또는 SoapDocumentMethodAttribute 특성의 SoapRpcMethodAttribute 속성을 나타내는 값을 가져옵니다. |
SoapVersion |
XML Web services와 통신하는 데 사용되는 SOAP 프로토콜의 버전을 가져옵니다. |
Stage |
SoapMessageStage의 SoapMessage을 가져옵니다. |
Stream |
SOAP 요청이나 SOAP 응답을 Stream 형식으로 표시되는 데이터를 가져옵니다. |
Url |
파생 클래스에서 재정의된 경우 해당 XML Web services의 기본 URL을 가져옵니다. |
메서드
EnsureInStage() |
파생 클래스에서 재정의된 경우 현재 SoapMessageStage가 in 매개 변수를 사용할 수 있는 단계임을 어설션합니다. |
EnsureOutStage() |
파생 클래스에서 재정의된 경우 현재 SoapMessageStage 단계가 out 매개 변수를 사용할 수 있는 단계임을 어설션합니다. |
EnsureStage(SoapMessageStage) |
XML Web services 메서드에 대한 호출 SoapMessageStage가 통과한 단계인지 확인합니다. 현재 처리 중인 단계가 통과한 단계가 아니면 예외가 throw됩니다. |
Equals(Object) |
지정된 개체가 현재 개체와 같은지 확인합니다. (다음에서 상속됨 Object) |
GetHashCode() |
기본 해시 함수로 작동합니다. (다음에서 상속됨 Object) |
GetInParameterValue(Int32) |
지정된 인덱스에 있는 XML Web services 메서드로 전달되는 매개 변수를 가져옵니다. |
GetOutParameterValue(Int32) |
지정된 인덱스에 있는 XML Web services 메서드로 전달되는 out 매개 변수를 가져옵니다. |
GetReturnValue() |
웹 서비스 메서드의 반환 값을 가져옵니다. |
GetType() |
현재 인스턴스의 Type을 가져옵니다. (다음에서 상속됨 Object) |
MemberwiseClone() |
현재 Object의 단순 복사본을 만듭니다. (다음에서 상속됨 Object) |
ToString() |
현재 개체를 나타내는 문자열을 반환합니다. (다음에서 상속됨 Object) |