このトピックの内容は、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 へのルール移行の詳細については、「移行のガイドライン」を参照してください。
![]() |
---|
サンプルは、既にコンピューターにインストールされている場合があります。続行する前に、次の (既定の) ディレクトリを確認してください。
<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 クライアント アプリケーションを実行するには
Visual Studio 2010 を使用して、Policy4Sample.sln ソリューション ファイルを開きます。
ソリューション エクスプローラーで、ImperativeCodeClientSample プロジェクトを右クリックし、[スタートアップ プロジェクトに設定] をクリックします。
プロジェクトを実行するには、Ctrl キーを押しながら F5 キーを押します。
ImperativeCodeClientSample クライアント アプリケーションを実行するには
Visual Studio 2010 を使用して、Policy4Sample.sln ソリューション ファイルを開きます。
ソリューション エクスプローラーで、DesignerClientSample プロジェクトを右クリックします。
- [スタートアップ プロジェクトに設定] をクリックします。
プロジェクトをコンパイルするには、F6 キーを押します。
プロジェクトを実行するには、Ctrl キーを押しながら F5 キーを押します。