CallExternalMethodActivity Class
Defines a workflow communication activity that is used to call a method on a local service. This activity is used to send data from the workflow to the host through the local service.
Assembly: System.Workflow.Activities (in System.Workflow.Activities.dll)
A local service is a class that implements a local service interface (an interface that is marked with ExternalDataExchangeAttribute) and is added to the ExternalDataExchangeService.
Note: |
|---|
When the external method is called all parameters of the method are cloned. If the parameter types implement ICloneable the Clone method is called or they are serialized and deserialized with a BinaryFormatter. |
The following code example shows how to use the CallExternalMethodActivity in a custom activity to call an external method. This code example is part of the Listen SDK sample from the PurchaseOrderWorkflow.Designer.cs file. For more information, see Listen Sample.
<System.Diagnostics.DebuggerNonUserCode()> _
Private Sub InitializeComponent()
Me.CanModifyActivities = True
Me.CreatePO = New System.Workflow.Activities.CallExternalMethodActivity
Me.POStatusListen = New System.Workflow.Activities.ListenActivity
Me.OnOrderApprovedEventDriven = New System.Workflow.Activities.EventDrivenActivity
Me.OnOrderRejectedEventDriven = New System.Workflow.Activities.EventDrivenActivity
Me.OnTimeoutEventDriven = New System.Workflow.Activities.EventDrivenActivity
Me.ApprovePO = New System.Workflow.Activities.HandleExternalEventActivity
Me.RejectPO = New System.Workflow.Activities.HandleExternalEventActivity
Me.Delay = New System.Workflow.Activities.DelayActivity
Me.Timeout = New System.Workflow.Activities.CodeActivity
'
'Timeout
'
Me.Timeout.Name = "Timeout"
AddHandler Me.Timeout.ExecuteCode, AddressOf Me.OnTimeout
'
'Delay
'
Me.Delay.Name = "Delay"
Me.Delay.TimeoutDuration = System.TimeSpan.Parse("00:00:05")
'
'RejectPO
'
Me.RejectPO.EventName = "OrderRejected"
Me.RejectPO.InterfaceType = GetType(IOrderService)
Me.RejectPO.Name = "RejectPO"
AddHandler Me.RejectPO.Invoked, AddressOf Me.OnRejectPO
'
' ApprovePO
'
Me.ApprovePO.EventName = "OrderApproved"
Me.ApprovePO.InterfaceType = GetType(IOrderService)
Me.ApprovePO.Name = "ApprovePO"
AddHandler Me.ApprovePO.Invoked, AddressOf Me.OnApprovePO
'
' OnTimeoutEventDriven
'
Me.OnTimeoutEventDriven.Activities.Add(Me.Delay)
Me.OnTimeoutEventDriven.Activities.Add(Me.Timeout)
Me.OnTimeoutEventDriven.Name = "OnTimeoutEventDriven"
'
' OnOrderRejectedEventDriven
'
Me.OnOrderRejectedEventDriven.Activities.Add(Me.RejectPO)
Me.OnOrderRejectedEventDriven.Name = "OnOrderRejectedEventDriven"
'
' OnOrderApprovedEventDriven
'
Me.OnOrderApprovedEventDriven.Activities.Add(Me.ApprovePO)
Me.OnOrderApprovedEventDriven.Name = "OnOrderApprovedEventDriven"
'
' POStatusListen
'
Me.POStatusListen.Activities.Add(Me.OnOrderApprovedEventDriven)
Me.POStatusListen.Activities.Add(Me.OnOrderRejectedEventDriven)
Me.POStatusListen.Activities.Add(Me.OnTimeoutEventDriven)
Me.POStatusListen.Name = "POStatusListen"
'
' CreatePO
'
Me.CreatePO.InterfaceType = GetType(IOrderService)
Me.CreatePO.MethodName = "CreateOrder"
Me.CreatePO.Name = "CreatePO"
AddHandler Me.CreatePO.MethodInvoking, AddressOf Me.OnBeforeCreateOrder
'
' PurchaseOrderWorkflow
'
Me.Activities.Add(Me.CreatePO)
Me.Activities.Add(Me.POStatusListen)
Me.Name = "PurchaseOrderWorkflow"
Me.CanModifyActivities = False
End Sub
System.Workflow.ComponentModel.DependencyObject
System.Workflow.ComponentModel.Activity
System.Workflow.Activities.CallExternalMethodActivity
Windows 7, Windows Vista, Windows XP SP2, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003
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.
Note: