次の方法で共有


.NET Framework 4 のポリシー アクティビティ

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

Policy4 アクティビティは、.NET Framework Version 3.5 (WF 3.5) RuleSet オブジェクト内の Windows Workflow Foundation を、WF 3.5 に付属しているルール エンジンを使用して .NET Framework Version 4 (WF 4) の Windows Workflow Foundation で直接使用できるようにします。このアクティビティを使用すると、WF 3.5 RuleSet を作成して実行できます。Windows Workflow Foundation の一部として用意されている WF 3.5 ルール エンジン詳細情報、「Windows Workflow Foundation ルール エンジンの紹介」を参照してください。.NET Framework 4 の WF へのルール移行の詳細については、「移行のガイドライン」を参照してください。

Dd797584.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\ActivityLibrary\Policy4

このサンプルのプロジェクト

プロジェクト名 説明 メイン ファイル

Policy4

Policy4 アクティビティとその WF デザイナーが含まれます。

Policy4.cs: Policy4 アクティビティ定義です。

PolicyDesigner.xaml: Policy4 アクティビティのカスタム デザイナーです。WF ルール エンジンからルール エディター (RuleSetDialog クラス) を使用します。

ImperativeCodeClientSample

命令型 C# コードで、Policy4 アプリケーションを使用してワークフローを構成および実行するサンプル クライアント アプリケーションです (WF デザイナーは不使用)。

ApplyDiscount.rules: WF ルール定義が記述されたファイルです。

Order.cs: 顧客の注文を表す型です。ルールはこの型のオブジェクトに適用されます。

Program.cs: Policy4 アクティビティを使用するワークフローを構成および実行して、ApplyDiscount.rules で定義されているルールを Order オブジェクトのインスタンスに適用します。

App.config: ルール ファイルのパスが記述された構成ファイルです。

DesignerClientSample

WF デザイナーで、Policy4 アプリケーションを使用してワークフローを構成および実行するサンプル クライアント アプリケーションです。

Sequence1.xaml: Policy4 アクティビティを使用してルール評価を実行するシーケンシャル ワークフローです。

Program.cs: Sequence1.xaml で定義されているワークフローのインスタンスを実行します。

Policy4 アクティビティ

Policy4 アクティビティは、ワークフローで WF RuleSet を実行できるようにする NativeActivity の派生クラスです。次のコード例は、このアクティビティのパブリック OM の簡略化された定義です。

public class Policy4Activity<TResult>: NativeActivity<TResult>
{
    public RuleSet RuleSet

    [IsRequired]
    public InArgument Input

    public OutArgument<ValidationErrorCollection> ValidationErrors
}

プロパティ 説明

RuleSet

アクティビティが実行されるときに評価される、.NET Framework 3.5 の WF RuleSet クラスです。

TargetObject

RuleSet クラスの Rules を評価する対象のオブジェクトです。

ValidationError

実行前に対象オブジェクトに対して RuleSet クラスを検証するときに、.NET Framework 3.5 の WF ルール エンジンから返される検証エラーのリストです。

Policy4 アクティビティ デザイナー

Policy4 デザイナーを使用すると、コードを記述することなく Policy4 アクティビティを構成できます。ソリューションをビルドすると、Microsoft.Samples.Activities.Rules セクションのツールボックス内からこのデザイナーを使用できるようになります。

WF デザイナーでは、対象オブジェクトや RuleSet を構成できます。[Edit RuleSet] ボタンをクリックすると、.NET Framework 3.5 の WF RuleSetDialog クラスが表示されます。このダイアログは、ホストを変更した .NET Framework 3.5 ルール エディターです。このエディターを使用して、Policy4 アクティビティで実行するルールを作成および編集します。

このサンプルの使用

このサンプルを実行するのに特別な設定は必要ありません。Visual Studio でソリューションを開き、F5 キーを押してアプリケーションを実行するだけです。

このサンプルには、ImperativeCodeClientSample と DesignerClientSample の 2 つのクライアント アプリケーションがあります。ImperativeCodeClientSample クライアントは、C# 命令型コードを使用して Policy4 アクティビティを構成および実行する方法を示します。DesignerClientSample は、デザイナーを使用して Policy4 アクティビティを構成および実行する方法を示します。

ImperativeCodeClientSample クライアント アプリケーションを実行するには

  1. Visual Studio 2010 を使用して、Policy4Sample.sln ソリューション ファイルを開きます。

  2. ソリューション エクスプローラーで、ImperativeCodeClientSample プロジェクトを右クリックし、[スタートアップ プロジェクトに設定] をクリックします。

  3. プロジェクトを実行するには、Ctrl キーを押しながら F5 キーを押します。

ImperativeCodeClientSample クライアント アプリケーションを実行するには

  1. Visual Studio 2010 を使用して、Policy4Sample.sln ソリューション ファイルを開きます。

  2. ソリューション エクスプローラーで、DesignerClientSample プロジェクトを右クリックします。

    • [スタートアップ プロジェクトに設定] をクリックします。
  3. プロジェクトをコンパイルするには、F6 キーを押します。

  4. プロジェクトを実行するには、Ctrl キーを押しながら F5 キーを押します。