SoapClientMessage.OneWay 属性

定义

获取一个值,该值指示客户端是否等待服务器处理完 XML Web services 方法。

public:
 virtual property bool OneWay { bool get(); };
public override bool OneWay { get; }
member this.OneWay : bool
Public Overrides ReadOnly Property OneWay As Boolean

属性值

Boolean

如果客户端不等待服务器完成对方法的处理,则为 true

示例

以下代码片段是 SOAP 扩展的一部分,用于记录 XML Web 服务客户端发送和接收的 SOAP 消息。 当属性为单向时,此特定片段将输出到该日志文件中一个短语,指出 XML Web 服务方法是true单向的OneWay

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 );
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);
 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)

注解

SoapDocumentMethodAttributeSoapRpcMethodAttribute应用于 XML Web 服务方法或 XML Web 服务客户端可以通过设置OneWay属性的属性来指定 XML Web 服务方法是否一种方式。

可以在任何SoapMessageStage期间访问该OneWay属性。

适用于

另请参阅