次の方法で共有


制約の種類

このトピックの内容は、Windows Workflow Foundation 4 に該当します。

このサンプルでは、ワークフローに制約を適用する 2 種類の方法を示します。1 つはアクティビティの内部 (ビルド) から適用する方法で、もう 1 つはアクティビティの外部 (ポリシー) から適用する方法です。このシナリオでは、(サードパーティのソフトウェア会社の) アクティビティ作成者が 2 つの引数間のリレーションシップを検証します。ここでは、コストが価格以下になるようにする必要があります。これは、一般的な検証ビルド制約です。

次に、ショップ オーナーがこの一般的なアクティビティに検証を追加します。ここでは、製品のほとんどを $9.99 以下にします。したがって、CreateProduct アクティビティに基づくポリシー制約を使用します。

このサンプルでは、次の操作を行います。

アクティビティ作成者 (ビルド) は、次を行う必要があります。

  • 制約 (PriceGreaterThanCost) を作成します。ここには、すべての検証ロジックが存在します。

  • OnGetConstraints をオーバーライドし、制約 (PriceGreaterThanCost) を制約 IList に追加します。

ワークフロー作成者 (ポリシー) は、次を行う必要があります。

  • 検証するアクティビティのインスタンスを含むワークフローを作成します (CreateProduct)。

  • 制約 (MaxPrice) を作成します。

  • ValidatorSettings インスタンス (validatorSettings) を作成し、制約 (MaxPrice) をコレクション AdditionalConstraints に追加します。ここで、ワークフロー作成者は、シーケンスや並列などのアクティビティにポリシー制約を追加できます。

  • Validate を呼び出すと、ConstraintViolation オブジェクトの ValidationResults コレクションが返されます。

  • (省略可能) ConstraintViolation オブジェクトを出力します。

サンプルを設定、ビルド、および実行するには

  1. Visual Studio 2010 で ConstraintTypes.sln サンプル ソリューションを開きます。

  2. ソリューションをビルドして実行します。

Dd759025.Important(ja-jp,VS.100).gif 注 :
サンプルは、既にコンピューターにインストールされている場合があります。続行する前に、次の (既定の) ディレクトリを確認してください。

<InstallDrive>:\WF_WCF_Samples

このディレクトリが存在しない場合は、「.NET Framework 4 向けの Windows Communication Foundation (WCF) および Windows Workflow Foundation (WF) のサンプル」にアクセスして、Windows Communication Foundation (WCF) および WF のサンプルをすべてダウンロードしてください。このサンプルは、次のディレクトリに格納されます。

<InstallDrive>:\WF_WCF_Samples\WF\Scenario\Validation\ConstraintLibrary