This documentation is archived and is not being maintained.

OperationFlow Enumeration

Specifies the type of transmission an endpoint of the XML Web service can support.

Namespace:  System.Web.Services.Description
Assembly:  System.Web.Services (in System.Web.Services.dll)

'Declaration
Public Enumeration OperationFlow
'Usage
Dim instance As OperationFlow

Member nameDescription
NoneIndicates that the endpoint of the XML Web service receives no transmissions.
OneWayIndicates that the endpoint of the XML Web service receives a message.
NotificationIndicates that the endpoint of the XML Web service sends a message.
RequestResponseIndicates that the endpoint of the XML Web service receives a message, then sends a correlated message.
SolicitResponseIndicates 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.

Imports System
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 'Main
   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 'DisplayOperationFlowDescription
End Class 'MyOperationFlowSample
#using <mscorlib.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(S"Indicates that the endpoint or service "
         S"receives no transmissions (None).");
      break;
   case OperationFlow::OneWay:
      Console::WriteLine(S"Indicates that the endpoint or service "
         S"receives a message (OneWay).");
      break;
   case OperationFlow::Notification:
      Console::WriteLine(S"Indicates that the endpoint or service "
         S"sends a message (Notification).");
      break;
   case OperationFlow::SolicitResponse:
      Console::WriteLine(S"Indicates that the endpoint or service "
         S"sends a message, then receives a "
         S"correlated message (SolicitResponse).");
      break;
   case OperationFlow::RequestResponse:
      Console::WriteLine(S"Indicates that the endpoint or service "
         S"receives a message, then sends a "
         S"correlated message (RequestResponse).");
      break;
   }
}

int main()
{
   try
   {
      ServiceDescription* myDescription =
         ServiceDescription::Read(S"MathService_Input_cs.wsdl");
      PortTypeCollection*  myPortTypeCollection  =
         myDescription->PortTypes;

      // Get the OperationCollection for SOAP protocol.
      OperationCollection* myOperationCollection =
         myPortTypeCollection->Item[0]->Operations;

      // Get the OperationMessageCollection for the Add operation.
      OperationMessageCollection* myOperationMessageCollection =
         myOperationCollection->Item[0]->Messages;

      // Indicate that the endpoint or service receives no
      // transmissions (None).
      Console::WriteLine(S"myOperationMessageCollection does not "
         S"contain any operation messages.");
      DisplayOperationFlowDescription(myOperationMessageCollection->Flow);
      Console::WriteLine();

      // Indicate that the endpoint or service receives a message (OneWay).
      OperationMessage* myInputOperationMessage =
         dynamic_cast<OperationMessage*> (new OperationInput());
      XmlQualifiedName* myXmlQualifiedName =
         new XmlQualifiedName(S"AddSoapIn", myDescription->TargetNamespace);
      myInputOperationMessage->Message = myXmlQualifiedName;
      myOperationMessageCollection->Add(myInputOperationMessage);
      Console::WriteLine(S"myOperationMessageCollection contains "
         S"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*> (new OperationOutput());
      XmlQualifiedName* myXmlQualifiedName1 = new XmlQualifiedName
         (S"AddSoapOut", myDescription->TargetNamespace);
      myOutputOperationMessage->Message = myXmlQualifiedName1;
      myOperationMessageCollection->Add(myOutputOperationMessage);
      Console::WriteLine(S"myOperationMessageCollection contains "
         S"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(S"'myOperationMessageCollection' contains "
         S"an output operation message first, then "
         S"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(S"myOperationMessageCollection contains "
         S"an input operation message first, then "
         S"an output operation message.");
      DisplayOperationFlowDescription(myOperationMessageCollection->Flow);
      Console::WriteLine();

      myDescription->Write(S"MathService_new_cs.wsdl");
      Console::WriteLine(
         S"The file MathService_new_cs.wsdl was successfully written.");
   }
   catch(Exception* e)
   {
      Console::WriteLine(S"Exception caught!!!");
      Console::WriteLine(S"Source : {0}", e->Source);
      Console::WriteLine(S"Message : {0}", e->Message);
   }
}

Windows 7, Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

.NET Framework

Supported in: 3.5, 3.0, 2.0, 1.1, 1.0
Show: