InvokeMethod 活動設計工具
[InvokeMethod] 設計工具是用來建立及設定 InvokeMethod 活動。
InvokeMethod 活動
InvokeMethod 會呼叫指定物件或型別的公用方法。
使用 InvokeMethod 活動設計工具
在 [工具箱] 的 [Primitives] 類別中,存取 [InvokeMethod] 活動設計工具。 [InvokeMethod] 活動設計工具可從 [工具箱] 拖曳出來,放到工作流程設計工具介面上通常用來放置活動的任一處,例如 Sequence 內部。 卸除活動設計工具會建立一個 InvokeMethod 活動,具有 InvokeMethod 的預設 DisplayName。 在 [InvokeMethod] 活動設計工具的標頭中,或是在屬性方格的 [DisplayName] 方塊中可以編輯 DisplayName。
InvokeMethod 屬性
下表顯示 InvokeMethod 屬性,並描述屬性在設計工具中的使用方式。 這些屬性可以在屬性方格中進行編輯,其中有一些可以在工作流程設計工具介面上編輯。
屬性名稱 | 必要 | 使用方式 |
---|---|---|
DisplayName | False | InvokeMethod 活動的易記名稱。 預設值為 InvokeMethod。 雖然 DisplayName 並非絕對必要,但建議您盡量使用。 |
MethodName | True | 活動執行時要呼叫之方法的名稱。 所呼叫的方法必須宣告為 [公用]。 此屬性也可以在設計工具介面上編輯,並且屬於必要項目。 |
Parameters | False | 要呼叫之方法的參數集合。 將參數加入至集合時,加入順序必須與參數出現在方法簽章中的順序相同。 若要顯示可在其中設定此屬性的 [Parameters] 對話方塊,請按一下屬性方格中 [Parameters] 欄位的省略符號按鈕。 按一下 [建立引數] 按鈕來加入參數。 |
Result | False | 方法呼叫的傳回值。 |
RunAsynchronously | True | 指定是否要非同步呼叫方法。 預設值為 [False] 。 |
TargetObject | False | 包含要呼叫之方法的物件。 此屬性也可以在設計工具介面上編輯。 必須設定 TargetObject 或 TargetType。 |
TargetType | False | TargetObject 的類型。 此屬性也可以在設計工具介面上編輯。 呼叫的方法必須是靜態的,才能設定此屬性。 |
若要將參數當作 C# out 參數傳遞 (例如,Method1(out myParam))
),請使用 OutArgument ,而不是 InOutArgument
無法使用 InvokeMethod 活動來叫用包含稱為 TargetObject 或 Result 之引數的方法。 這是因為 InvokeMethod 活動會在 GenericTypeArguments 中登錄 TargetObject、Result 和 CacheMetadata。
以下清單顯示在 CacheMetadata 中登錄參數的演算法:
登錄 TargetObject 引數。
登錄 Result 引數。
逐一查看 Parameters 集合並登錄每個引數。
結果的例外狀況是包含以下訊息的 InvalidWorkflowException 類型:'InvokeMethod':已有名稱為 'TargetObject' 的變數、RuntimeArgument 或 DelegateArgument。 名稱在環境範圍中必須是唯一的。
此限制不適用於 TargetType 和 RunAsynchronously。 它們不是工作流程引數,因此不會在 CacheMetadata 方法中 InvokeMethod 活動的 GenericTypeArguments 集合中註冊。