Export (0) Print
Expand All

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.

Namespace:  System.Workflow.Activities
Assembly:  System.Workflow.Activities (in System.Workflow.Activities.dll)

[ActivityValidatorAttribute(typeof(CallExternalMethodActivityValidator))]
public class CallExternalMethodActivity : Activity, 
	IDynamicPropertyTypeProvider

The CallExternalMethodActivity type exposes the following members.

  NameDescription
Public methodCallExternalMethodActivity()Initializes a new instance of the CallExternalMethodActivity class.
Public methodCallExternalMethodActivity(String)Initializes a new instance of the CallExternalMethodActivity class using the name of the activity.
Top

  NameDescription
Public propertyCorrelationTokenGets or sets the CorrelationToken for the external method.
Public propertyDescriptionGets or sets the user-defined description of the Activity. (Inherited from Activity.)
Protected propertyDesignModeGets the value that indicates whether this instance is in design or run-time mode. (Inherited from DependencyObject.)
Public propertyEnabledGets or sets a value that indicates whether this instance is enabled for execution and validation. (Inherited from Activity.)
Public propertyExecutionResultGets the ActivityExecutionResult of the last attempt to run this instance. (Inherited from Activity.)
Public propertyExecutionStatusGets the current ActivityExecutionStatus of this instance. (Inherited from Activity.)
Public propertyInterfaceTypeGets or sets an external method's declaring interface that has the ExternalDataExchangeAttribute.
Public propertyIsDynamicActivityGets information about whether the activity is executing within the default ActivityExecutionContext of the workflow instance. (Inherited from Activity.)
Public propertyMethodNameGets or sets the name of the method to be called on the local service registered with the ExternalDataExchangeService.
Public propertyNameGets or sets the name of this instance. This name must conform to the variable naming convention of the programming language that is being used in the Workflow project. (Inherited from Activity.)
Public propertyParameterBindingsGets the collection of bindable parameters as found in the external method's formal parameter list.
Public propertyParentGets the CompositeActivity that contains this Activity. (Inherited from Activity.)
Protected propertyParentDependencyObjectGets the parent DependencyObject in the DependencyObject graph. (Inherited from DependencyObject.)
Public propertyQualifiedNameGets the qualified name of the activity. Qualified activity names are always unique in a workflow instance. (Inherited from Activity.)
Public propertySiteGets or sets a reference to the Site component of the DependencyObject. (Inherited from DependencyObject.)
Public propertyUserDataGets an IDictionary that associates custom data with this class instance. (Inherited from DependencyObject.)
Protected propertyWorkflowInstanceIdGets the Guid associated with the instance. (Inherited from Activity.)
Top

  NameDescription
Public methodAddHandlerAdds a handler for an event of a DependencyObject. (Inherited from DependencyObject.)
Protected methodCancelCalled by the workflow runtime to cancel execution of an activity that is currently executing. (Inherited from Activity.)
Public methodCloneCreates a deep copy of the Activity. (Inherited from Activity.)
Public methodDispose()Releases all the resources used by the DependencyObject. (Inherited from DependencyObject.)
Protected methodDispose(Boolean)Releases the unmanaged resources and optionally releases the managed resources used by DependencyObject. (Inherited from DependencyObject.)
Public methodEquals(Object)Determines whether the specified Object is equal to the current Object. (Inherited from Object.)
Protected methodExecuteTries to run the CallExternalMethodActivity with the specified ActivityExecutionContext. (Overrides Activity.Execute(ActivityExecutionContext).)
Protected methodFinalizeProvided as an override to Object.Finalize to clean up any unmanaged resources deterministically. (Inherited from DependencyObject.)
Public methodGetActivityByName(String)Returns the instance of the Activity whose name is requested from the set of all activities running under the root activity of this instance, which is within the workflow. (Inherited from Activity.)
Public methodGetActivityByName(String, Boolean)Returns the instance of the Activity whose name is requested from the set of all activities under the root the Activity of this instance if the second parameter is false and under the current Activity if the second parameter is true. (Inherited from Activity.)
Public methodGetBindingProvides access to the ActivityBind associated with the specific DependencyProperty. (Inherited from DependencyObject.)
Protected methodGetBoundValueRetrieves the Object that is the subject of an ActivityBind. (Inherited from DependencyObject.)
Public methodGetHashCodeServes as a hash function for a particular type. (Inherited from Object.)
Protected methodGetInvocationList<T>Gets an array that contains the delegates for the specified DependencyProperty. (Inherited from DependencyObject.)
Public methodGetTypeGets the Type of the current instance. (Inherited from Object.)
Public methodGetValueProvides access to the value of the designated DependencyProperty. (Inherited from DependencyObject.)
Public methodGetValueBaseProvides access to the bound object of a DependencyProperty and bypasses the GetValue override. (Inherited from DependencyObject.)
Protected methodHandleFaultCalled when an exception is raised within the context of the execution of this instance. (Inherited from Activity.)
Protected methodInitializeCalled by the workflow runtime to initialize an activity during the construction of a new workflow instance. This method is called during the construction of a dynamic ActivityExecutionContext. (Inherited from Activity.)
Protected methodInitializePropertiesPerforms initialization on dependency properties. (Overrides DependencyObject.InitializeProperties().)
Protected methodInvoke<T>(EventHandler<T>, T)Subscribes an EventHandler and invokes that delegate. (Inherited from Activity.)
Protected methodInvoke<T>(IActivityEventListener<T>, T)Subscribes an IActivityEventListener<T> and invokes that delegate. (Inherited from Activity.)
Public methodIsBindingSetIndicates whether the value of a DependencyProperty is set as a binding. See SetBinding. (Inherited from DependencyObject.)
Protected methodMemberwiseCloneCreates a shallow copy of the current Object. (Inherited from Object.)
Public methodMetaEqualsDetermines whether the metaproperties of this DependencyObject equals the metaproperties of the parameterized DependencyObject. (Inherited from DependencyObject.)
Protected methodOnActivityExecutionContextLoadCalled by the workflow runtime whenever an ActivityExecutionContext is loaded. For example, this method is called during the creation of an ActivityExecutionContext as well as every time the ActivityExecutionContext is reincarnated when a workflow instance is loaded from persistent storage. (Inherited from Activity.)
Protected methodOnActivityExecutionContextUnloadCalled by the workflow runtime whenever an ActivityExecutionContext is unloaded. For example, this method is called during completion of an ActivityExecutionContext as well as every time the ActivityExecutionContext is unloaded when a workflow instance is persisted. (Inherited from Activity.)
Protected methodOnClosedCalled by the workflow runtime as part of the activity's transition to the closed state. (Inherited from Activity.)
Protected methodOnMethodInvokedProvides a hook for derived classes to extract out and return values from the ParameterBindings. This method is called just after the external method is run.
Protected methodOnMethodInvokingProvides a hook for derived classes to set ParameterBindings. This method is called just before the external method is run.
Protected methodRaiseEventRaises an Event associated with the specified dependency property. (Inherited from Activity.)
Protected methodRaiseGenericEvent<T>Raises the event associated with the referenced DependencyProperty. (Inherited from Activity.)
Public methodRegisterForStatusChangeRegisters the specified DependencyProperty for the status change event. (Inherited from Activity.)
Public methodRemoveHandlerRemoves an EventHandler from an associated DependencyProperty. (Inherited from DependencyObject.)
Public methodRemovePropertyRemoves a DependencyProperty from the DependencyObject. (Inherited from DependencyObject.)
Public methodSave(Stream)Writes the Activity to a Stream for persistence. (Inherited from Activity.)
Public methodSave(Stream, IFormatter)Writes the Activity to a Stream for persistence using the custom IFormatter provided for serialization. (Inherited from Activity.)
Public methodSetBindingSets the ActivityBind for the specified DependencyProperty. (Inherited from DependencyObject.)
Protected methodSetBoundValueSets the value of the target ActivityBind. (Inherited from DependencyObject.)
Protected methodSetReadOnlyPropertyValueSets the value of a DependencyProperty, which is read-only. (Inherited from DependencyObject.)
Public methodSetValueSets the value of the DependencyProperty to the object. (Inherited from DependencyObject.)
Public methodSetValueBaseSets the value of the DependencyProperty to the specified Object, bypassing the SetValue. (Inherited from DependencyObject.)
Public methodToStringProvides a string that represents this instance. (Inherited from Activity.)
Protected methodTrackData(Object)Informs the run-time tracking infrastructure of pending tracking information. (Inherited from Activity.)
Protected methodTrackData(String, Object)Informs the run-time tracking infrastructure of pending tracking information. (Inherited from Activity.)
Protected methodUninitializeWhen overridden in a derived class, provides un-initialization by a service provider for the activity. (Inherited from Activity.)
Public methodUnregisterForStatusChangeUn-registers the specified DependencyProperty for the status change event. (Inherited from Activity.)
Top

  NameDescription
Public eventCancelingOccurs when the activity execution is canceled. (Inherited from Activity.)
Public eventClosedOccurs when an Activity has completed execution. (Inherited from Activity.)
Public eventCompensatingOccurs when running a compensation method on the Activity. (Inherited from Activity.)
Public eventExecutingOccurs when the Activity is run. (Inherited from Activity.)
Public eventFaultingOccurs when an exception is raised during the running of the instance. (Inherited from Activity.)
Public eventMethodInvokingOccurs before invoking the method.
Public eventStatusChangedOccurs when the ActivityExecutionStatus of a running Activity changes. (Inherited from Activity.)
Top

  NameDescription
Public fieldStatic memberCorrelationTokenPropertyRepresents the DependencyProperty that targets the CorrelationToken property.
Public fieldStatic memberInterfaceTypePropertyRepresents the DependencyProperty that targets the InterfaceType property.
Public fieldStatic memberMethodInvokingEventRepresents the DependencyProperty that targets the MethodInvoking event.
Public fieldStatic memberMethodNamePropertyRepresents the DependencyProperty that targets the MethodName property.
Public fieldStatic memberParameterBindingsPropertyRepresents the DependencyProperty that targets the ParameterBindings property.
Top

  NameDescription
Explicit interface implemetationPrivate eventIComponent.DisposedRepresents the method that handles the Disposed event of a component. (Inherited from DependencyObject.)
Explicit interface implemetationPrivate methodIDynamicPropertyTypeProvider.GetAccessTypeReturns the access type for the specified property.
Explicit interface implemetationPrivate methodIDynamicPropertyTypeProvider.GetPropertyTypeReturns the Type of the specified property.
Top

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.

NoteNote

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, seeListen Sample.


[System.Diagnostics.DebuggerNonUserCode()]
private void InitializeComponent()
{
    this.CanModifyActivities = true;
    this.Timeout = new System.Workflow.Activities.CodeActivity();
    this.Delay = new System.Workflow.Activities.DelayActivity();
    this.RejectPO = new System.Workflow.Activities.HandleExternalEventActivity();
    this.ApprovePO = new System.Workflow.Activities.HandleExternalEventActivity();
    this.OnTimeoutEventDriven = new System.Workflow.Activities.EventDrivenActivity();
    this.OnOrderRejectedEventDriven = new System.Workflow.Activities.EventDrivenActivity();
    this.OnOrderApprovedEventDriven = new System.Workflow.Activities.EventDrivenActivity();
    this.POStatusListen = new System.Workflow.Activities.ListenActivity();
    this.CreatePO = new System.Workflow.Activities.CallExternalMethodActivity();
    // 
    // Timeout
    // 
    this.Timeout.Name = "Timeout";
    this.Timeout.ExecuteCode += new System.EventHandler(this.OnTimeout);
    // 
    // Delay
    // 
    this.Delay.Name = "Delay";
    this.Delay.TimeoutDuration = System.TimeSpan.Parse("00:00:05");
    // 
    // RejectPO
    // 
    this.RejectPO.EventName = "OrderRejected";
    this.RejectPO.InterfaceType = typeof(IOrderService);
    this.RejectPO.Name = "RejectPO";
    this.RejectPO.Invoked += new System.EventHandler<System.Workflow.Activities.ExternalDataEventArgs>(this.OnRejectPO);
    // 
    // ApprovePO
    // 
    this.ApprovePO.EventName = "OrderApproved";
    this.ApprovePO.InterfaceType = typeof(IOrderService);
    this.ApprovePO.Name = "ApprovePO";
    this.ApprovePO.Invoked += new System.EventHandler<System.Workflow.Activities.ExternalDataEventArgs>(this.OnApprovePO);
    // 
    // OnTimeoutEventDriven
    // 
    this.OnTimeoutEventDriven.Activities.Add(this.Delay);
    this.OnTimeoutEventDriven.Activities.Add(this.Timeout);
    this.OnTimeoutEventDriven.Name = "OnTimeoutEventDriven";
    // 
    // OnOrderRejectedEventDriven
    // 
    this.OnOrderRejectedEventDriven.Activities.Add(this.RejectPO);
    this.OnOrderRejectedEventDriven.Name = "OnOrderRejectedEventDriven";
    // 
    // OnOrderApprovedEventDriven
    // 
    this.OnOrderApprovedEventDriven.Activities.Add(this.ApprovePO);
    this.OnOrderApprovedEventDriven.Name = "OnOrderApprovedEventDriven";
    // 
    // POStatusListen
    // 
    this.POStatusListen.Activities.Add(this.OnOrderApprovedEventDriven);
    this.POStatusListen.Activities.Add(this.OnOrderRejectedEventDriven);
    this.POStatusListen.Activities.Add(this.OnTimeoutEventDriven);
    this.POStatusListen.Name = "POStatusListen";
    // 
    // CreatePO
    // 
    this.CreatePO.InterfaceType = typeof(IOrderService);
    this.CreatePO.MethodName = "CreateOrder";
    this.CreatePO.Name = "CreatePO";
    this.CreatePO.MethodInvoking += new System.EventHandler(this.OnBeforeCreateOrder);
    // 
    // PurchaseOrderWorkflow
    // 
    this.Activities.Add(this.CreatePO);
    this.Activities.Add(this.POStatusListen);
    this.Name = "PurchaseOrderWorkflow";
    this.CanModifyActivities = false;

}


.NET Framework

Supported in: 4, 3.5, 3.0

Windows 7, Windows Vista SP1 or later, Windows XP SP3, 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.

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Community Additions

ADD
Show:
© 2014 Microsoft