This documentation is archived and is not being maintained.
OperationFlow Enumeration
Visual Studio 2010
Specifies the type of transmission an endpoint of the XML Web service can support.
Assembly: System.Web.Services (in System.Web.Services.dll)
| Member name | Description | |
|---|---|---|
| None | Indicates that the endpoint of the XML Web service receives no transmissions. | |
| OneWay | Indicates that the endpoint of the XML Web service receives a message. | |
| Notification | Indicates that the endpoint of the XML Web service sends a message. | |
| RequestResponse | Indicates that the endpoint of the XML Web service receives a message, then sends a correlated message. | |
| SolicitResponse | Indicates that the endpoint of the XML Web service sends a message, then receives a correlated message. |
Although request-response or solicit-response operations are logically correlated in the Web Services Description Language (WSDL) document, the concrete correlation information will be specified by a binding. For example, the request and response messages can be exchanged as part of one or two actual HTTP transmissions.
The following sample demonstrates the use of the OperationFlow enumeration.
#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; // <Snippet5> 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; } } // </Snippet3> 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 ); } }
Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
Show: