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
Copyright © 2007 by Microsoft Corporation. Alle Rechte vorbehalten.