次の方法で共有


ルール セットのプログラムによる実行

PolicyActivity アクティビティを使って RuleSets を実行するほかに、RuleSet の中でプログラムによってルールを実行して評価することもできます。たとえば、(ワークフローまたは他の種類の) アクティビティに対してアクティビティ コード内部から RuleSet を実行するとします。次のコードは、その方法を示しています。

RuleValidation validation = new RuleValidation(typeof(customActivity),
null);

// "this" in the call below refers to the activity instance.
RuleExecution execution = new RuleExecution(validation, this);
customRuleSet.Execute(execution); 

一般に、ワークフロー内でルールを使用する場合は、RuleExecution インスタンスの作成時に ActivityExecutionContext も渡します。コンテキストを提供する主な利点は、ホストの追跡元にルール例外情報を送信できる点です。

また、RuleEngine オブジェクトを直接使って RuleSet オブジェクトを実行することもできます。次のコードは、その方法を示しています。

RuleValidation validation = new RuleValidation(typeof(customActivity),
null);

// "this" in the call below refers to the activity instance.
RuleEngine engine = new RuleEngine(customRuleSet, validation);
engine.Execute(this);

特定の種類に対してルール セットを検証するだけであれば (たとえば、ルールで参照されているすべてのメンバが含まれるかどうか)、次のように表現できます。

bool result = myRuleSet.Validate(validation);

Validate メソッド呼び出しの結果は、RuleSet が有効であれば true です。RuleValidation インスタンスには、検証エラーを含む Errors プロパティがあります。

Noteメモ :

また、ワークフローの外部で RuleSets を使用することもできます。任意の .NET Framework 型に対して、RuleSet を作成することができます。

関連項目

参照

RuleSet
Validate
RuleValidation
RuleExecution
ActivityExecutionContext
PolicyActivity

概念

ワークフロー内での条件の使用

Footer image

Copyright © 2007 by Microsoft Corporation.All rights reserved.