CallExternalMethodActivity 類別

定義

警告

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

定義工作流程通訊活動,用於呼叫本機服務上的方法。 這個活動用於透過本機服務將資料從工作流程傳送到主機。

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
繼承
CallExternalMethodActivity
屬性
實作

範例

下列程式碼範例顯示如何在自訂活動中使用 CallExternalMethodActivity 呼叫外部方法。 這個程式碼範例是 PurchaseOrderWorkflow.Designer.cs 檔案中<接聽 SDK>範例的一部分。 如需詳細資訊,請參閱 接聽範例

[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

備註

注意

此資料討論已被汰換的類型及命名空間。 如需詳細資訊,請參閱 Windows Workflow Foundation 4.5 中即將淘汰的類型

本機服務是一種類別,可實作本機服務介面 (標示有 ExternalDataExchangeAttribute 的介面),並會加入到 ExternalDataExchangeService

注意

呼叫外部方法時,會複製該方法的所有參數。 如果參數類型實作 ICloneable ,則會 Clone 呼叫 方法,或是使用 序列化和還原序列化 BinaryFormatter

建構函式

CallExternalMethodActivity()
已淘汰.

初始化 CallExternalMethodActivity 類別的新執行個體。

CallExternalMethodActivity(String)
已淘汰.

使用活動的名稱,初始化 CallExternalMethodActivity 類別的新執行個體。

欄位

CorrelationTokenProperty
已淘汰.

表示目標為 DependencyProperty 屬性的 CorrelationToken

InterfaceTypeProperty
已淘汰.

表示目標為 DependencyProperty 屬性的 InterfaceType

MethodInvokingEvent
已淘汰.

表示目標為 DependencyProperty 事件的 MethodInvoking

MethodNameProperty
已淘汰.

表示目標為 DependencyProperty 屬性的 MethodName

ParameterBindingsProperty
已淘汰.

表示目標為 DependencyProperty 屬性的 ParameterBindings

屬性

CorrelationToken
已淘汰.

取得或設定外部方法的 CorrelationToken

Description
已淘汰.

取得或設定 Activity 的使用者定義描述。

(繼承來源 Activity)
DesignMode
已淘汰.

取得值,這個值會指出這個執行個體是在設計模式或執行階段模式中。

(繼承來源 DependencyObject)
Enabled
已淘汰.

取得或設定值,這個值會指出是否啟用這個執行個體進行執行和驗證。

(繼承來源 Activity)
ExecutionResult
已淘汰.

取得最後嘗試要執行這個執行個體的 ActivityExecutionResult

(繼承來源 Activity)
ExecutionStatus
已淘汰.

取得這個執行個體的目前 ActivityExecutionStatus

(繼承來源 Activity)
InterfaceType
已淘汰.

取得或設定有 ExternalDataExchangeAttribute 的外部方法宣告介面。

IsDynamicActivity
已淘汰.

取得有關活動是否執行於工作流程執行個體之預設 ActivityExecutionContext 內的資訊。

(繼承來源 Activity)
MethodName
已淘汰.

取得或設定在由 ExternalDataExchangeService 所註冊之本機服務上呼叫的方法名稱。

Name
已淘汰.

取得或設定這個執行個體的名稱。 這個名稱必須符合工作流程專案中所使用之程式語言的變數命名慣例。

(繼承來源 Activity)
ParameterBindings
已淘汰.

取得在外部方法的型式參數清單中找到之可繫結參數的集合。

Parent
已淘汰.

取得含有這個 CompositeActivityActivity

(繼承來源 Activity)
ParentDependencyObject
已淘汰.

取得 DependencyObject 圖形中的父代 DependencyObject

(繼承來源 DependencyObject)
QualifiedName
已淘汰.

取得活動的完整名稱。 在工作流程執行個體中,完整的活動名稱永遠是唯一的。

(繼承來源 Activity)
Site
已淘汰.

取得或設定 SiteDependencyObject 元件的參考。

(繼承來源 DependencyObject)
UserData
已淘汰.

取得 IDictionary,它會將自訂資料與這個類別執行個體產生關聯。

(繼承來源 DependencyObject)
WorkflowInstanceId
已淘汰.

取得與執行個體相關聯的 Guid

(繼承來源 Activity)

方法

AddHandler(DependencyProperty, Object)
已淘汰.

加入 之事件的處理常式。

(繼承來源 DependencyObject)
Cancel(ActivityExecutionContext)
已淘汰.

由工作流程執行階段呼叫,以取消執行目前執行的活動。

(繼承來源 Activity)
Clone()
已淘汰.

建立 Activity 的深層複本 (Deep Copy)。

(繼承來源 Activity)
Dispose()
已淘汰.

釋放 DependencyObject 使用的所有資源。

(繼承來源 DependencyObject)
Dispose(Boolean)
已淘汰.

會釋放 Unmanaged 資源,並選擇性地釋放 DependencyObject 所使用的 Managed 資源。

(繼承來源 DependencyObject)
Equals(Object)
已淘汰.

判斷指定的物件是否等於目前的物件。

(繼承來源 Object)
Execute(ActivityExecutionContext)
已淘汰.

嘗試使用指定的 CallExternalMethodActivity 執行 ActivityExecutionContext

GetActivityByName(String)
已淘汰.

傳回 Activity 的執行個體,其名稱是向執行於此執行個體之根活動下的活動全體集合要求而來的,該執行個體則位於工作流程內。

(繼承來源 Activity)
GetActivityByName(String, Boolean)
已淘汰.

傳回 Activity 的執行個體,如果第二個參數是 Activity,則要求其名稱的來源是在這個執行個體其 false 的根項目之下的所有活動集,如果第二個參數是 Activity,則來源是在目前 true 之下。

(繼承來源 Activity)
GetBinding(DependencyProperty)
已淘汰.

提供存取與特定 ActivityBind 相關聯的 DependencyProperty

(繼承來源 DependencyObject)
GetBoundValue(ActivityBind, Type)
已淘汰.

擷取 Object,其為 ActivityBind 的主體。

(繼承來源 DependencyObject)
GetHashCode()
已淘汰.

做為預設雜湊函式。

(繼承來源 Object)
GetInvocationList<T>(DependencyProperty)
已淘汰.

取得陣列,這個陣列包含指定 DependencyProperty 的委派。

(繼承來源 DependencyObject)
GetType()
已淘汰.

取得目前執行個體的 Type

(繼承來源 Object)
GetValue(DependencyProperty)
已淘汰.

提供存取所指定 DependencyProperty 的值。

(繼承來源 DependencyObject)
GetValueBase(DependencyProperty)
已淘汰.

提供對 DependencyProperty 其繫結物件的存取,並略過 GetValue(DependencyProperty) 覆寫。

(繼承來源 DependencyObject)
HandleFault(ActivityExecutionContext, Exception)
已淘汰.

在這個執行個體的執行內容中引發例外狀況時呼叫。

(繼承來源 Activity)
Initialize(IServiceProvider)
已淘汰.

由工作流程執行階段呼叫,以初始化建構新工作流程執行個體期間的活動。 這個方法在建構動態的 ActivityExecutionContext 期間呼叫。

(繼承來源 Activity)
InitializeProperties()
已淘汰.

在相依性屬性上執行初始化。

Invoke<T>(EventHandler<T>, T)
已淘汰.

訂閱 EventHandler 並叫用該委派。

(繼承來源 Activity)
Invoke<T>(IActivityEventListener<T>, T)
已淘汰.

訂閱 IActivityEventListener<T> 並叫用該委派。

(繼承來源 Activity)
IsBindingSet(DependencyProperty)
已淘汰.

指出 DependencyProperty 的值是否已設定為繫結。 請參閱 SetBinding(DependencyProperty, ActivityBind)

(繼承來源 DependencyObject)
MemberwiseClone()
已淘汰.

建立目前 Object 的淺層複製。

(繼承來源 Object)
MetaEquals(DependencyObject)
已淘汰.

判斷這個 的 是否相等於參數化 的 。

(繼承來源 DependencyObject)
OnActivityExecutionContextLoad(IServiceProvider)
已淘汰.

每當載入 ActivityExecutionContext 時,由工作流程執行階段呼叫。 例如,在建立 ActivityExecutionContext 期間,以及每次當從持續性儲存體載入工作流程執行個體時具體化 ActivityExecutionContext 時,呼叫這個方法。

(繼承來源 Activity)
OnActivityExecutionContextUnload(IServiceProvider)
已淘汰.

每當卸載 ActivityExecutionContext 時,由工作流程執行階段呼叫。 例如,在完成 期間,以及每次當工作流程執行個體執行時卸載 時,呼叫這個方法。

(繼承來源 Activity)
OnClosed(IServiceProvider)
已淘汰.

當活動轉換到已關閉狀態時,由工作流程執行階段呼叫。

(繼承來源 Activity)
OnMethodInvoked(EventArgs)
已淘汰.

提供要擷取的衍生類別攔截,並從 ParameterBindings 傳回值。 這個方法會在執行外部方法後立即呼叫。

OnMethodInvoking(EventArgs)
已淘汰.

提供衍生類別的攔截以設定 ParameterBindings。 這個方法會在執行外部方法之前呼叫。

RaiseEvent(DependencyProperty, Object, EventArgs)
已淘汰.

引發與指定相依性屬性相關聯的 Event

(繼承來源 Activity)
RaiseGenericEvent<T>(DependencyProperty, Object, T)
已淘汰.

引發與所參考 DependencyProperty 相關聯的事件。

(繼承來源 Activity)
RegisterForStatusChange(DependencyProperty, IActivityEventListener<ActivityExecutionStatusChangedEventArgs>)
已淘汰.

註冊狀態變更事件的指定 DependencyProperty

(繼承來源 Activity)
RemoveHandler(DependencyProperty, Object)
已淘汰.

EventHandler 從相關聯的 DependencyProperty 移除。

(繼承來源 DependencyObject)
RemoveProperty(DependencyProperty)
已淘汰.

DependencyPropertyDependencyObject 中移除。

(繼承來源 DependencyObject)
Save(Stream)
已淘汰.

Activity 寫入保存性 (Persistence) 的 Stream

(繼承來源 Activity)
Save(Stream, IFormatter)
已淘汰.

使用為序列化提供的自訂 Activity,將 Stream 寫入 IFormatter 以供保存。

(繼承來源 Activity)
SetBinding(DependencyProperty, ActivityBind)
已淘汰.

設定所指定 ActivityBindDependencyProperty

(繼承來源 DependencyObject)
SetBoundValue(ActivityBind, Object)
已淘汰.

設定目標 ActivityBind 的值。

(繼承來源 DependencyObject)
SetReadOnlyPropertyValue(DependencyProperty, Object)
已淘汰.

設定唯讀的 DependencyProperty 其值。

(繼承來源 DependencyObject)
SetValue(DependencyProperty, Object)
已淘汰.

DependencyProperty 的值設定給物件。

(繼承來源 DependencyObject)
SetValueBase(DependencyProperty, Object)
已淘汰.

DependencyProperty 的值設定為指定的 Object,略過 SetValue(DependencyProperty, Object)

(繼承來源 DependencyObject)
ToString()
已淘汰.

提供代表這個執行個體的字串。

(繼承來源 Activity)
TrackData(Object)
已淘汰.

通知執行階段追蹤基礎結構關於暫止追蹤的資訊。

(繼承來源 Activity)
TrackData(String, Object)
已淘汰.

通知執行階段追蹤基礎結構關於暫止追蹤的資訊。

(繼承來源 Activity)
Uninitialize(IServiceProvider)
已淘汰.

在衍生類別中覆寫時,依據活動的服務提供者提供還原初始化。

(繼承來源 Activity)
UnregisterForStatusChange(DependencyProperty, IActivityEventListener<ActivityExecutionStatusChangedEventArgs>)
已淘汰.

解除註冊狀態變更事件的指定 DependencyProperty

(繼承來源 Activity)

事件

Canceling
已淘汰.

取消執行活動時發生。

(繼承來源 Activity)
Closed
已淘汰.

發生於 Activity 已完成執行時。

(繼承來源 Activity)
Compensating
已淘汰.

發生於在 Activity 上執行補償方法時。

(繼承來源 Activity)
Executing
已淘汰.

發生於執行 Activity 時。

(繼承來源 Activity)
Faulting
已淘汰.

在執行個體執行期間引發例外狀況時發生。

(繼承來源 Activity)
MethodInvoking
已淘汰.

在叫用方法之前發生。

StatusChanged
已淘汰.

發生於正在執行之 的 變更時。

(繼承來源 Activity)

明確介面實作

IComponent.Disposed
已淘汰.

表示處理元件 Disposed 事件的方法。

(繼承來源 DependencyObject)
IDynamicPropertyTypeProvider.GetAccessType(IServiceProvider, String)
已淘汰.

傳回指定之屬性的存取類型。

IDynamicPropertyTypeProvider.GetPropertyType(IServiceProvider, String)
已淘汰.

傳回指定之屬性的 Type

適用於

另請參閱