次の方法で共有


プロパティと引数

データをアクティビティに渡すために使用可能なオプションはいくつかあります。 InArgument を使用する以外に、標準の CLR プロパティまたはパブリック ActivityAction プロパティを使用してデータを受け取るアクティビティを開発できます。 このトピックでは適切なメソッド型の選択方法について説明します。

CLR プロパティの使用

データをアクティビティに渡す場合、CLR プロパティ (Get および Set ルーチンを使用してデータを公開するパブリック メソッド) は最も制限が大きいオプションです。 ソリューションをコンパイルする際、CLR プロパティに渡すパラメーターの値がわかっている必要があります。この値はワークフローのすべてのインスタンスで同一です。 このように、CLR プロパティに渡された値はコードで定義された定数に似ています。この値はアクティビティの有効期間を通じて変更されず、アクティビティの異なるインスタンスのために変更できません。 MethodName はアクティビティによって公開される CLR プロパティの 1 つです。アクティビティが呼び出すメソッドの名前は、実行時の要件に基づいて変更できず、アクティビティのすべてのインスタンスで同じです。

引数の使用

引数は、データがアクティビティの有効期間内に 1 回だけ評価されるときに使用する必要があります。つまり、値はアクティビティの有効期間中に変化しません。しかし値はアクティビティの異なるインスタンスごとに異なります。 Condition は 1 回評価された値の例です。そのため引数として定義されます。 Text は引数として定義すべきメソッドの別の例です。これはアクティビティの実行中に 1 回のみ評価されますが、アクティビティの異なるインスタンスごとに異なることができます。

ActivityAction の使用

アクティビティの実行の有効期間中にデータを複数回評価する必要がある場合は ActivityAction を使用してください。 たとえば、Condition プロパティは While ループを反復するたびに評価されます。 この目的で InArgument を使用した場合、引数は反復のたびに再評価されず、常に同じ結果を返すため、ループは終了しません。