CallExternalMethodActivity 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
警告
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 呼叫外部方法。 這個程式碼範例是 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 |
已淘汰.
取得含有這個 CompositeActivity 的 Activity。 (繼承來源 Activity) |
ParentDependencyObject |
已淘汰.
取得 DependencyObject 圖形中的父代 DependencyObject。 (繼承來源 DependencyObject) |
QualifiedName |
已淘汰.
取得活動的完整名稱。 在工作流程執行個體中,完整的活動名稱永遠是唯一的。 (繼承來源 Activity) |
Site |
已淘汰.
取得或設定 Site 的 DependencyObject 元件的參考。 (繼承來源 DependencyObject) |
UserData |
已淘汰.
取得 IDictionary,它會將自訂資料與這個類別執行個體產生關聯。 (繼承來源 DependencyObject) |
WorkflowInstanceId |
已淘汰.
取得與執行個體相關聯的 Guid。 (繼承來源 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。 |