OperationFlow Wyliczenie
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Określa typ transmisji punktu końcowego usługi sieci Web XML może obsługiwać.
public enum class OperationFlow
public enum OperationFlow
type OperationFlow =
Public Enum OperationFlow
- Dziedziczenie
Pola
None | 0 | Wskazuje, że punkt końcowy usługi sieci Web XML nie odbiera transmisji. |
Notification | 2 | Wskazuje, że punkt końcowy usługi sieci Web XML wysyła komunikat. |
OneWay | 1 | Wskazuje, że punkt końcowy usługi sieci Web XML odbiera komunikat. |
RequestResponse | 3 | Wskazuje, że punkt końcowy usługi sieci Web XML odbiera komunikat, a następnie wysyła skorelowany komunikat. |
SolicitResponse | 4 | Wskazuje, że punkt końcowy usługi sieci Web XML wysyła komunikat, a następnie odbiera skorelowany komunikat. |
Przykłady
W poniższym przykładzie pokazano użycie OperationFlow
wyliczenia.
#using <System.dll>
#using <System.Web.Services.dll>
#using <System.Xml.dll>
using namespace System;
using namespace System::Xml;
using namespace System::Web::Services;
using namespace System::Web::Services::Description;
void DisplayOperationFlowDescription( OperationFlow myOperationFlow )
{
switch ( myOperationFlow )
{
case OperationFlow::None:
Console::WriteLine( "Indicates that the endpoint or service "
"receives no transmissions (None)." );
break;
case OperationFlow::OneWay:
Console::WriteLine( "Indicates that the endpoint or service "
"receives a message (OneWay)." );
break;
case OperationFlow::Notification:
Console::WriteLine( "Indicates that the endpoint or service "
"sends a message (Notification)." );
break;
case OperationFlow::SolicitResponse:
Console::WriteLine( "Indicates that the endpoint or service "
"sends a message, then receives a "
"correlated message (SolicitResponse)." );
break;
case OperationFlow::RequestResponse:
Console::WriteLine( "Indicates that the endpoint or service "
"receives a message, then sends a "
"correlated message (RequestResponse)." );
break;
}
}
int main()
{
try
{
ServiceDescription^ myDescription = ServiceDescription::Read( "MathService_Input_cs.wsdl" );
PortTypeCollection^ myPortTypeCollection = myDescription->PortTypes;
// Get the OperationCollection for SOAP protocol.
OperationCollection^ myOperationCollection = myPortTypeCollection[ 0 ]->Operations;
// Get the OperationMessageCollection for the Add operation.
OperationMessageCollection^ myOperationMessageCollection = myOperationCollection[ 0 ]->Messages;
// Indicate that the endpoint or service receives no
// transmissions (None).
Console::WriteLine( "myOperationMessageCollection does not "
"contain any operation messages." );
DisplayOperationFlowDescription( myOperationMessageCollection->Flow );
Console::WriteLine();
// Indicate that the endpoint or service receives a message (OneWay).
OperationMessage^ myInputOperationMessage = dynamic_cast<OperationMessage^>(gcnew OperationInput);
XmlQualifiedName^ myXmlQualifiedName = gcnew XmlQualifiedName( "AddSoapIn",myDescription->TargetNamespace );
myInputOperationMessage->Message = myXmlQualifiedName;
myOperationMessageCollection->Add( myInputOperationMessage );
Console::WriteLine( "myOperationMessageCollection contains "
"only input operation messages." );
DisplayOperationFlowDescription( myOperationMessageCollection->Flow );
Console::WriteLine();
myOperationMessageCollection->Remove( myInputOperationMessage );
// Indicate that an endpoint or service sends a message (Notification).
OperationMessage^ myOutputOperationMessage = dynamic_cast<OperationMessage^>(gcnew OperationOutput);
XmlQualifiedName^ myXmlQualifiedName1 = gcnew XmlQualifiedName( "AddSoapOut",myDescription->TargetNamespace );
myOutputOperationMessage->Message = myXmlQualifiedName1;
myOperationMessageCollection->Add( myOutputOperationMessage );
Console::WriteLine( "myOperationMessageCollection contains "
"only output operation messages." );
DisplayOperationFlowDescription( myOperationMessageCollection->Flow );
Console::WriteLine();
// Indicate that an endpoint or service sends a message, then
// receives a correlated message (SolicitResponse).
myOperationMessageCollection->Add( myInputOperationMessage );
Console::WriteLine( "'myOperationMessageCollection' contains "
"an output operation message first, then "
"an input operation message." );
DisplayOperationFlowDescription( myOperationMessageCollection->Flow );
Console::WriteLine();
// Indicate that an endpoint or service receives a message,
// then sends a correlated message (RequestResponse).
myOperationMessageCollection->Remove( myInputOperationMessage );
myOperationMessageCollection->Insert( 0, myInputOperationMessage );
Console::WriteLine( "myOperationMessageCollection contains "
"an input operation message first, then "
"an output operation message." );
DisplayOperationFlowDescription( myOperationMessageCollection->Flow );
Console::WriteLine();
myDescription->Write( "MathService_new_cs.wsdl" );
Console::WriteLine( "The file MathService_new_cs.wsdl was successfully written." );
}
catch ( Exception^ e )
{
Console::WriteLine( "Exception caught!!!" );
Console::WriteLine( "Source : {0}", e->Source );
Console::WriteLine( "Message : {0}", e->Message );
}
}
using System;
using System.Xml;
using System.Web.Services;
using System.Web.Services.Description;
class MyOperationFlowSample
{
public static void Main()
{
try
{
ServiceDescription myDescription =
ServiceDescription.Read("MathService_Input_cs.wsdl");
PortTypeCollection myPortTypeCollection =
myDescription.PortTypes;
// Get the OperationCollection for SOAP protocol.
OperationCollection myOperationCollection =
myPortTypeCollection[0].Operations;
// Get the OperationMessageCollection for the Add operation.
OperationMessageCollection myOperationMessageCollection =
myOperationCollection[0].Messages;
// Indicate that the endpoint or service receives no
// transmissions (None).
Console.WriteLine("myOperationMessageCollection does not " +
"contain any operation messages.");
DisplayOperationFlowDescription(myOperationMessageCollection.Flow);
Console.WriteLine();
// Indicate that the endpoint or service receives a message (OneWay).
OperationMessage myInputOperationMessage =
(OperationMessage) new OperationInput();
XmlQualifiedName myXmlQualifiedName =
new XmlQualifiedName("AddSoapIn", myDescription.TargetNamespace);
myInputOperationMessage.Message = myXmlQualifiedName;
myOperationMessageCollection.Add(myInputOperationMessage);
Console.WriteLine("myOperationMessageCollection contains " +
"only input operation messages.");
DisplayOperationFlowDescription(myOperationMessageCollection.Flow);
Console.WriteLine();
myOperationMessageCollection.Remove(myInputOperationMessage);
// Indicate that an endpoint or service sends a message (Notification).
OperationMessage myOutputOperationMessage =
(OperationMessage) new OperationOutput();
XmlQualifiedName myXmlQualifiedName1 = new XmlQualifiedName
("AddSoapOut", myDescription.TargetNamespace);
myOutputOperationMessage.Message = myXmlQualifiedName1;
myOperationMessageCollection.Add(myOutputOperationMessage);
Console.WriteLine("myOperationMessageCollection contains " +
"only output operation messages.");
DisplayOperationFlowDescription(myOperationMessageCollection.Flow);
Console.WriteLine();
// Indicate that an endpoint or service sends a message, then
// receives a correlated message (SolicitResponse).
myOperationMessageCollection.Add(myInputOperationMessage);
Console.WriteLine("'myOperationMessageCollection' contains " +
"an output operation message first, then " +
"an input operation message.");
DisplayOperationFlowDescription(myOperationMessageCollection.Flow);
Console.WriteLine();
// Indicate that an endpoint or service receives a message,
// then sends a correlated message (RequestResponse).
myOperationMessageCollection.Remove(myInputOperationMessage);
myOperationMessageCollection.Insert(0, myInputOperationMessage);
Console.WriteLine("myOperationMessageCollection contains " +
"an input operation message first, then " +
"an output operation message.");
DisplayOperationFlowDescription(myOperationMessageCollection.Flow);
Console.WriteLine();
myDescription.Write("MathService_new_cs.wsdl");
Console.WriteLine(
"The file MathService_new_cs.wsdl was successfully written.");
}
catch(Exception e)
{
Console.WriteLine("Exception caught!!!");
Console.WriteLine("Source : " + e.Source);
Console.WriteLine("Message : " + e.Message);
}
}
public static void DisplayOperationFlowDescription(
OperationFlow myOperationFlow)
{
switch(myOperationFlow)
{
case OperationFlow.None:
Console.WriteLine("Indicates that the endpoint or service " +
"receives no transmissions (None).");
break;
case OperationFlow.OneWay:
Console.WriteLine("Indicates that the endpoint or service " +
"receives a message (OneWay).");
break;
case OperationFlow.Notification:
Console.WriteLine("Indicates that the endpoint or service " +
"sends a message (Notification).");
break;
case OperationFlow.SolicitResponse:
Console.WriteLine("Indicates that the endpoint or service " +
"sends a message, then receives a " +
"correlated message (SolicitResponse).");
break;
case OperationFlow.RequestResponse:
Console.WriteLine("Indicates that the endpoint or service " +
"receives a message, then sends a " +
"correlated message (RequestResponse).");
break;
}
}
}
Imports System.Xml
Imports System.Web.Services
Imports System.Web.Services.Description
Class MyOperationFlowSample
Public Shared Sub Main()
Try
Dim myDescription As ServiceDescription = _
ServiceDescription.Read("MathService_Input_vb.wsdl")
Dim myPortTypeCollection As PortTypeCollection = _
myDescription.PortTypes
' Get the OperationCollection for SOAP protocol.
Dim myOperationCollection As OperationCollection = _
myPortTypeCollection(0).Operations
' Get the OperationMessageCollection for the Add operation.
Dim myOperationMessageCollection As OperationMessageCollection = _
myOperationCollection(0).Messages
' Indicate that the endpoint or service receives no
' transmissions (None).
Console.WriteLine("myOperationMessageCollection does not " & _
"contain any operation messages.")
DisplayOperationFlowDescription(myOperationMessageCollection.Flow)
Console.WriteLine()
' Indicate that the endpoint or service receives a message (OneWay).
Dim myInputOperationMessage As OperationMessage = _
CType(New OperationInput(), OperationMessage)
Dim myXmlQualifiedName As New XmlQualifiedName("AddSoapIn", _
myDescription.TargetNamespace)
myInputOperationMessage.Message = myXmlQualifiedName
myOperationMessageCollection.Add(myInputOperationMessage)
Console.WriteLine("myOperationMessageCollection contains " & _
"only input operation messages.")
DisplayOperationFlowDescription(myOperationMessageCollection.Flow)
Console.WriteLine()
myOperationMessageCollection.Remove(myInputOperationMessage)
' Indicate that an endpoint or service sends a message (Notification).
Dim myOutputOperationMessage As OperationMessage = _
CType(New OperationOutput(), OperationMessage)
Dim myXmlQualifiedName1 As New XmlQualifiedName("AddSoapOut", _
myDescription.TargetNamespace)
myOutputOperationMessage.Message = myXmlQualifiedName1
myOperationMessageCollection.Add(myOutputOperationMessage)
Console.WriteLine("myOperationMessageCollection contains only " & _
"output operation messages.")
DisplayOperationFlowDescription(myOperationMessageCollection.Flow)
Console.WriteLine()
' Indicate that an endpoint or service sends a message, then
' receives a correlated message (SolicitResponse).
myOperationMessageCollection.Add(myInputOperationMessage)
Console.WriteLine("myOperationMessageCollection contains " & _
"an output operation message first, then " & _
"an input operation message.")
DisplayOperationFlowDescription(myOperationMessageCollection.Flow)
Console.WriteLine()
' Indicate that an endpoint or service receives a message,
' then sends a correlated message (RequestResponse).
myOperationMessageCollection.Remove(myInputOperationMessage)
myOperationMessageCollection.Insert(0, myInputOperationMessage)
Console.WriteLine("myOperationMessageCollection contains " & _
"an input operation message first, then " & _
"an output operation message.")
DisplayOperationFlowDescription(myOperationMessageCollection.Flow)
Console.WriteLine()
myDescription.Write("MathService_new_vb.wsdl")
Console.WriteLine( _
"The file MathService_new_vb.wsdl was successfully written.")
Catch e As Exception
Console.WriteLine("Exception caught!!!")
Console.WriteLine("Source : " & e.Source.ToString())
Console.WriteLine("Message : " & e.Message.ToString())
End Try
End Sub
Public Shared Sub DisplayOperationFlowDescription(myOperationFlow As OperationFlow)
Select Case myOperationFlow
Case OperationFlow.None
Console.WriteLine("Indicates that the endpoint or service " & _
"receives no transmissions (None).")
Case OperationFlow.OneWay
Console.WriteLine("Indicates that the endpoint or service " & _
"receives a message (OneWay).")
Case OperationFlow.Notification
Console.WriteLine("Indicates that the endpoint or service " & _
"sends a message (Notification).")
Case OperationFlow.SolicitResponse
Console.WriteLine("Indicates that the endpoint or service " & _
"sends a message, then receives a correlated message " & _
"(SolicitResponse).")
Case OperationFlow.RequestResponse
Console.WriteLine("Indicates that the endpoint or service " & _
"receives a message, then sends a correlated message " & _
"(RequestResponse).")
End Select
End Sub
End Class
Uwagi
Mimo że operacje żądań i odpowiedzi są logicznie skorelowane w dokumencie WSDL (Web Services Description Language), konkretne informacje korelacji zostaną określone przez powiązanie. Na przykład komunikaty żądania i odpowiedzi można wymieniać w ramach jednej lub dwóch rzeczywistych transmisji HTTP.