InvokeMethod デザイナーは、InvokeMethod アクティビティを作成および構成するために使用します。
InvokeMethod アクティビティ
InvokeMethod は、指定されたオブジェクトまたは型のパブリック メソッドを呼び出します。
InvokeMethod アクティビティ デザイナーの使用
InvokeMethod アクティビティ デザイナーは、[ツールボックス] の [プリミティブ] カテゴリにあります。[ツールボックス] にアクセスするには、ワークフロー デザイナーの [ツールボックス] タブをクリックします (または、[表示] メニューの [ツール バー] をクリックするか、Ctrl キーと Alt キーを押しながら X キーを押します)。
InvokeMethod アクティビティ デザイナーは、[ツールボックス] からドラッグして、アクティビティを通常配置しているワークフロー デザイナー画面の任意の場所 (Sequence 内など) にドロップできます。この操作により、InvokeMethod という既定の DisplayName を持つ InvokeMethod アクティビティが作成されます。DisplayName は、InvokeMethod アクティビティ デザイナーのヘッダーか、プロパティ グリッドの [DisplayName] ボックスで編集できます。
InvokeMethod プロパティ
次の表に、InvokeMethod のプロパティと、それをデザイナーで使用する方法を示します。これらのプロパティは、プロパティ グリッドで編集できます。また、その一部はワークフロー デザイナーのデザイナー画面で編集できます。
プロパティ名 | 必須 | 使用法 |
---|---|---|
DisplayName |
省略可 |
InvokeMethod アクティビティの表示名。既定値は InvokeMethod です。 DisplayName は必須ではありませんが、使用することをお勧めします。 |
必須 |
アクティビティの実行時に呼び出すメソッドの名前。呼び出されたメソッドは、public として宣言する必要があります。このプロパティは、デザイナー画面で設定することもできます。これは必須プロパティです。 |
|
省略可 |
呼び出されたメソッドのパラメーター コレクション。パラメーターは、メソッド シグネチャ内で出現する順序でコレクションに追加する必要があります。プロパティ グリッドで、[パラメーター] フィールド内の省略記号ボタンをクリックすると、このプロパティを設定できる [パラメーター] ダイアログが表示されます。[引数の作成] ボタンをクリックしてパラメーターを追加します。 |
|
省略可 |
メソッド呼び出しの戻り値。 |
|
必須 |
メソッドが非同期で呼び出されるかどうかを指定します。既定値は False です。 |
|
省略可 |
呼び出すメソッドを格納するオブジェクト。このプロパティは、デザイナー画面で設定することもできます。 TargetObject および TargetType のいずれかを設定する必要があります。 |
|
TargetType |
省略可 |
TargetObject の型。このプロパティは、デザイナー画面で編集できます。このプロパティは、メソッド呼び出しが静的である場合にのみ設定する必要があります。 |
C# の out パラメーター (たとえば Method1(out myParam)),
) としてパラメーターを渡すには、InOutArgument ではなく、OutArgument を使用する必要があります。
TargetObject または Result という引数を含むメソッドは、InvokeMethod アクティビティを使用して呼び出すことはできません。これは、InvokeMethod アクティビティによって GenericTypeArguments、TargetObject、および Result が CacheMetadata に登録されるためです。
CacheMetadata にパラメーターを登録するアルゴリズムは次のとおりです。
TargetObject 引数を登録します。
Result 引数を登録します。
Parameters コレクションを繰り返し処理し、各引数を登録します。
結果の例外の種類は InvalidWorkflowException となり、メッセージの内容は、"'InvokeMethod': 名前が 'TargetObject' の変数 RuntimeArgument または DelegateArgument は既に存在します" となります。名前は、環境スコープ内で一意であることが必要です。
この制限は、TargetType および RunAsynchronously には適用されません。これらはワークフロー引数ではなく、したがって、CacheMetadata メソッド内の InvokeMethod アクティビティのGenericTypeArguments コレクションに登録されないためです。
参照
概念
Assign アクティビティ デザイナー
Delay アクティビティ デザイナー
WriteLine アクティビティ デザイナー