Freigeben über


Programmgesteuertes Ausführen von RuleSets

Neben dem Ausführen von RuleSets mithilfe der PolicyActivity-Aktivität können Regeln in RuleSet programmgesteuert ausgeführt und ausgewertet werden. Beispiel: Sie möchten RuleSet innerhalb des Aktivitätscodes für eine Aktivität (ein Workflow oder ein beliebiger anderer Aktivitätstyp) ausführen. Das folgende Codebeispiel veranschaulicht, wie Sie dabei vorgehen müssen:

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); 

Bei der Verwendung von Regeln in einem Workflow wird beim Erstellen der RuleExecution-Instanz im Allgemeinen auch ActivityExecutionContext übergeben. Der hauptsächliche Vorteil der Bereitstellung des Kontexts besteht darin, dass Regelausführungsinformationen an den Überwachungsprovider des Hosts gesendet werden können.

Sie können RuleSet-Objekte auch durch direktes Verwenden des RuleEngine-Objekts ausführen. Der folgende Code beschreibt die Vorgehensweise.

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);

Wenn Sie nur einen Regelsatz anhand eines angegebenen Typs prüfen möchten (beispielsweise, um festzustellen, ob der Regelsatz alle Member beinhaltet, auf die in den Regeln verwiesen wird), kann dies folgendermaßen ausgedrückt werden:

bool result = myRuleSet.Validate(validation);

Das Ergebnis des Validate-Methodenaufrufs ist true, falls RuleSet gültig ist. Die RuleValidation-Instanz verfügt über eine Errors-Eigenschaft mit den Prüfungsfehlern.

Hinweis

Sie können auch RuleSets außerhalb eines Workflows verwenden. RuleSet kann für jeden .NET Framework-Typ geschrieben werden.

Siehe auch

Referenz

RuleSet
Validate
RuleValidation
RuleExecution
ActivityExecutionContext
PolicyActivity

Konzepte

Verwenden der Bedingungen in Workflows

Footer image

Copyright © 2007 by Microsoft Corporation. Alle Rechte vorbehalten.