Bewerken

Delen via


CallExternalMethodActivity Class

Definition

Caution

The System.Workflow.* types are deprecated. Instead, please use the new types from System.Activities.*

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.

public ref class CallExternalMethodActivity : System::Workflow::ComponentModel::Activity, System::Workflow::ComponentModel::IDynamicPropertyTypeProvider
[System.Workflow.ComponentModel.Compiler.ActivityValidator(typeof(System.Workflow.Activities.CallExternalMethodActivityValidator))]
public class CallExternalMethodActivity : System.Workflow.ComponentModel.Activity, System.Workflow.ComponentModel.IDynamicPropertyTypeProvider
[System.Workflow.ComponentModel.Compiler.ActivityValidator(typeof(System.Workflow.Activities.CallExternalMethodActivityValidator))]
[System.Obsolete("The System.Workflow.* types are deprecated.  Instead, please use the new types from System.Activities.*")]
public class CallExternalMethodActivity : System.Workflow.ComponentModel.Activity, System.Workflow.ComponentModel.IDynamicPropertyTypeProvider
[<System.Workflow.ComponentModel.Compiler.ActivityValidator(typeof(System.Workflow.Activities.CallExternalMethodActivityValidator))>]
type CallExternalMethodActivity = class
    inherit Activity
    interface IDynamicPropertyTypeProvider
[<System.Workflow.ComponentModel.Compiler.ActivityValidator(typeof(System.Workflow.Activities.CallExternalMethodActivityValidator))>]
[<System.Obsolete("The System.Workflow.* types are deprecated.  Instead, please use the new types from System.Activities.*")>]
type CallExternalMethodActivity = class
    inherit Activity
    interface IDynamicPropertyTypeProvider
Public Class CallExternalMethodActivity
Inherits Activity
Implements IDynamicPropertyTypeProvider
Inheritance
CallExternalMethodActivity
Attributes
Implements

Examples

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 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;
}
    <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

Remarks

Note

This material discusses types and namespaces that are obsolete. For more information, see Deprecated Types in Windows Workflow Foundation 4.5.

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're serialized and deserialized with BinaryFormatter.

Constructors

CallExternalMethodActivity()

Initializes a new instance of the CallExternalMethodActivity class.

CallExternalMethodActivity(String)

Initializes a new instance of the CallExternalMethodActivity class using the name of the activity.

Fields

CorrelationTokenProperty

Represents the DependencyProperty that targets the CorrelationToken property.

InterfaceTypeProperty

Represents the DependencyProperty that targets the InterfaceType property.

MethodInvokingEvent

Represents the DependencyProperty that targets the MethodInvoking event.

MethodNameProperty

Represents the DependencyProperty that targets the MethodName property.

ParameterBindingsProperty

Represents the DependencyProperty that targets the ParameterBindings property.

Properties

CorrelationToken

Gets or sets the CorrelationToken for the external method.

Description

Gets or sets the user-defined description of the Activity.

(Inherited from Activity)
DesignMode

Gets the value that indicates whether this instance is in design or run-time mode.

(Inherited from DependencyObject)
Enabled

Gets or sets a value that indicates whether this instance is enabled for execution and validation.

(Inherited from Activity)
ExecutionResult

Gets the ActivityExecutionResult of the last attempt to run this instance.

(Inherited from Activity)
ExecutionStatus

Gets the current ActivityExecutionStatus of this instance.

(Inherited from Activity)
InterfaceType

Gets or sets an external method's declaring interface that has the ExternalDataExchangeAttribute.

IsDynamicActivity

Gets information about whether the activity is executing within the default ActivityExecutionContext of the workflow instance.

(Inherited from Activity)
MethodName

Gets or sets the name of the method to be called on the local service registered with the ExternalDataExchangeService.

Name

Gets 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)
ParameterBindings

Gets the collection of bindable parameters as found in the external method's formal parameter list.

Parent

Gets the CompositeActivity that contains this Activity.

(Inherited from Activity)
ParentDependencyObject

Gets the parent DependencyObject in the DependencyObject graph.

(Inherited from DependencyObject)
QualifiedName

Gets the qualified name of the activity. Qualified activity names are always unique in a workflow instance.

(Inherited from Activity)
Site

Gets or sets a reference to the Site component of the DependencyObject.

(Inherited from DependencyObject)
UserData

Gets an IDictionary that associates custom data with this class instance.

(Inherited from DependencyObject)
WorkflowInstanceId

Gets the Guid associated with the instance.

(Inherited from Activity)

Methods

AddHandler(DependencyProperty, Object)

Adds a handler for an event of a DependencyObject.

(Inherited from DependencyObject)
Cancel(ActivityExecutionContext)

Called by the workflow runtime to cancel execution of an activity that is currently executing.

(Inherited from Activity)
Clone()

Creates a deep copy of the Activity.

(Inherited from Activity)
Dispose()

Releases all the resources used by the DependencyObject.

(Inherited from DependencyObject)
Dispose(Boolean)

Releases the unmanaged resources and optionally releases the managed resources used by DependencyObject.

(Inherited from DependencyObject)
Equals(Object)

Determines whether the specified object is equal to the current object.

(Inherited from Object)
Execute(ActivityExecutionContext)

Tries to run the CallExternalMethodActivity with the specified ActivityExecutionContext.

GetActivityByName(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)
GetActivityByName(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)
GetBinding(DependencyProperty)

Provides access to the ActivityBind associated with the specific DependencyProperty.

(Inherited from DependencyObject)
GetBoundValue(ActivityBind, Type)

Retrieves the Object that is the subject of an ActivityBind.

(Inherited from DependencyObject)
GetHashCode()

Serves as the default hash function.

(Inherited from Object)
GetInvocationList<T>(DependencyProperty)

Gets an array that contains the delegates for the specified DependencyProperty.

(Inherited from DependencyObject)
GetType()

Gets the Type of the current instance.

(Inherited from Object)
GetValue(DependencyProperty)

Provides access to the value of the designated DependencyProperty.

(Inherited from DependencyObject)
GetValueBase(DependencyProperty)

Provides access to the bound object of a DependencyProperty and bypasses the GetValue(DependencyProperty) override.

(Inherited from DependencyObject)
HandleFault(ActivityExecutionContext, Exception)

Called when an exception is raised within the context of the execution of this instance.

(Inherited from Activity)
Initialize(IServiceProvider)

Called 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)
InitializeProperties()

Performs initialization on dependency properties.

Invoke<T>(EventHandler<T>, T)

Subscribes an EventHandler and invokes that delegate.

(Inherited from Activity)
Invoke<T>(IActivityEventListener<T>, T)

Subscribes an IActivityEventListener<T> and invokes that delegate.

(Inherited from Activity)
IsBindingSet(DependencyProperty)

Indicates whether the value of a DependencyProperty is set as a binding. See SetBinding(DependencyProperty, ActivityBind).

(Inherited from DependencyObject)
MemberwiseClone()

Creates a shallow copy of the current Object.

(Inherited from Object)
MetaEquals(DependencyObject)

Determines whether the metaproperties of this DependencyObject equals the metaproperties of the parameterized DependencyObject.

(Inherited from DependencyObject)
OnActivityExecutionContextLoad(IServiceProvider)

Called 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)
OnActivityExecutionContextUnload(IServiceProvider)

Called 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)
OnClosed(IServiceProvider)

Called by the workflow runtime as part of the activity's transition to the closed state.

(Inherited from Activity)
OnMethodInvoked(EventArgs)

Provides 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.

OnMethodInvoking(EventArgs)

Provides a hook for derived classes to set ParameterBindings. This method is called just before the external method is run.

RaiseEvent(DependencyProperty, Object, EventArgs)

Raises an Event associated with the specified dependency property.

(Inherited from Activity)
RaiseGenericEvent<T>(DependencyProperty, Object, T)

Raises the event associated with the referenced DependencyProperty.

(Inherited from Activity)
RegisterForStatusChange(DependencyProperty, IActivityEventListener<ActivityExecutionStatusChangedEventArgs>)

Registers the specified DependencyProperty for the status change event.

(Inherited from Activity)
RemoveHandler(DependencyProperty, Object)

Removes an EventHandler from an associated DependencyProperty.

(Inherited from DependencyObject)
RemoveProperty(DependencyProperty)

Removes a DependencyProperty from the DependencyObject.

(Inherited from DependencyObject)
Save(Stream, IFormatter)

Writes the Activity to a Stream for persistence using the custom IFormatter provided for serialization.

(Inherited from Activity)
Save(Stream)

Writes the Activity to a Stream for persistence.

(Inherited from Activity)
SetBinding(DependencyProperty, ActivityBind)

Sets the ActivityBind for the specified DependencyProperty.

(Inherited from DependencyObject)
SetBoundValue(ActivityBind, Object)

Sets the value of the target ActivityBind.

(Inherited from DependencyObject)
SetReadOnlyPropertyValue(DependencyProperty, Object)

Sets the value of a DependencyProperty, which is read-only.

(Inherited from DependencyObject)
SetValue(DependencyProperty, Object)

Sets the value of the DependencyProperty to the object.

(Inherited from DependencyObject)
SetValueBase(DependencyProperty, Object)

Sets the value of the DependencyProperty to the specified Object, bypassing the SetValue(DependencyProperty, Object).

(Inherited from DependencyObject)
ToString()

Provides a string that represents this instance.

(Inherited from Activity)
TrackData(Object)

Informs the run-time tracking infrastructure of pending tracking information.

(Inherited from Activity)
TrackData(String, Object)

Informs the run-time tracking infrastructure of pending tracking information.

(Inherited from Activity)
Uninitialize(IServiceProvider)

When overridden in a derived class, provides un-initialization by a service provider for the activity.

(Inherited from Activity)
UnregisterForStatusChange(DependencyProperty, IActivityEventListener<ActivityExecutionStatusChangedEventArgs>)

Un-registers the specified DependencyProperty for the status change event.

(Inherited from Activity)

Events

Canceling

Occurs when the activity execution is canceled.

(Inherited from Activity)
Closed

Occurs when an Activity has completed execution.

(Inherited from Activity)
Compensating

Occurs when running a compensation method on the Activity.

(Inherited from Activity)
Executing

Occurs when the Activity is run.

(Inherited from Activity)
Faulting

Occurs when an exception is raised during the running of the instance.

(Inherited from Activity)
MethodInvoking

Occurs before invoking the method.

StatusChanged

Occurs when the ActivityExecutionStatus of a running Activity changes.

(Inherited from Activity)

Explicit Interface Implementations

IComponent.Disposed

Represents the method that handles the Disposed event of a component.

(Inherited from DependencyObject)
IDynamicPropertyTypeProvider.GetAccessType(IServiceProvider, String)

Returns the access type for the specified property.

IDynamicPropertyTypeProvider.GetPropertyType(IServiceProvider, String)

Returns the Type of the specified property.

Applies to

See also