Externalisierte Richtlinienaktivität in .NET Framework 4
Dieses Thema gilt für Windows Workflow Foundation 4.
In diesem Beispiel wird veranschaulicht, wie die ExternalizedPolicy4-Aktivität die Ausführung vorhandener .NET Framework, Version 3.5Windows Workflow Foundation (WF 3.5)RuleSet-Objekte direkt in .NET Framework, Version 4 Windows Workflow Foundation (WF 4) ermöglicht, indem das im Lieferumfang von WF 3.5 enthaltene Regelmodul verwendet wird. Mit dieser Aktivität können Sie alle vorhandenen WF 3.5 RuleSet-Elemente öffnen und ausführen. Weitere Informationen über WF 3.5 Regelmodul als Teil von Windows Workflow Foundation finden Sie unter Einführung in das Regelmodul von Windows Workflow Foundation. Weitere Informationen über Migrieren von Regeln in WF in .NET Framework 4 finden Sie in den Migrationsanleitungen unter Migrationsanleitung.
Projekte in diesem Beispiel
Projektname |
Beschreibung |
Hauptdateien |
ExternalizedPolicy4 |
Enthält die ExternalizedPolicy4-Aktivität und ihren WF 4-Designer. |
ExternalizedPolicy4.cs: Aktivitätsdefinition. ExternalizedPolicy4Designer.xaml: Benutzerdefinierter Designer für die ExternalizedPolicy4-Aktivität. Er verwendet den Regeleditor (RuleSetDialog) des WF 3.5-Regelmoduls. |
ImperativeCodeClientSample |
Beispielclientanwendung, die einen Workflow mithilfe einer ExternalizedPolicy4-Anwendung mit obligatorischem C#-Code konfiguriert und ausführt (kein Designer verwendet). |
ApplyDiscount.rules: Datei mit WF-Regeldefinitionen. Order.cs: Typ, der einen Kundenbestellung darstellt. Regeln werden auf Objekte dieses Typs angewendet. Program.cs: Konfiguriert und führt einen Workflow aus, der über eine Policy4-Aktivität verfügt, mit der in ApplyDiscount.rules definierte Regeln auf Instanzen von Order-Objekten angewendet werden. App.config: Die Konfigurationsdatei mit dem Pfad der Regeldatei. |
DesignerClientSample |
Beispielclientanwendung, die einen Workflow mithilfe einer ExternalPolicy4-Anwendung im WF-Designer konfiguriert und ausführt. |
Sequence1.xaml: Sequenzieller Workflow, der eine Policy4-Aktivität verwendet, um Regelauswertungen durchzuführen. Program.cs: Führt eine Instanz des in Sequence1.xaml definierten Workflows aus. |
Die ExternalizedPolicy4-Aktivität
Die ExternalizedPolicy4-Aktivität ist eine NativeActivity, mit der die Ausführung von RuleSet-Objekten in WF 3.5 innerhalb von WF 4.0-Workflows ermöglicht wird. Das folgende Beispiel ist eine vereinfachte Definition des öffentlichen Objektmodells der Aktivität.
public class ExternalizedPolicy4Activity<TResult>: CodeActivity
{
public string RulesFilePath
public string RuleSetName
[RequiredArgument]
public InArgument<T> TargetObject
[RequiredArgument]
public OutArgument<T> ResultObject
public OutArgument<ValidationErrorCollection> ValidationErrors
}
Eigenschaft |
Beschreibung |
RuleSetFilePath |
Pfad zur .NET Framework 3.5 RuleSet Datei, die beim Ausführen der Aktivität ausgewertet werden soll. |
RuleSetName |
Name des RuleSet, der in der RULES-Datei verwendet werden soll. |
TargetObject |
Das Objekt, für das die Rule-Objekte im RuleSet ausgewertet werden. |
ResultObject |
Das Objekt, das sich nach der Anwendung der Regeln ergibt. (Die Regeln werden zum Beispiel auf das Input-Argument angewendet, und das Ergebnis wird im Result-Argument gespeichert.) |
ValidationError |
Die Liste der Validierungsfehler, die vom WF 3.5-Regelmodul beim Überprüfen des RuleSet für das Zielobjekt vor der Ausführung zurückgegeben wurde. |
ExternalizedPolicy4-Aktivitätsdesigner
Mit dem ExternalizedPolicy4-Designer können Sie eine Aktivität zur Verwendung eines vorhandenen RuleSet konfigurieren, ohne dass Sie Code schreiben müssen. Geben Sie den Pfad an, in dem sich die RULES-Datei befindet, und legen Sie den zu verwendenden RuleSet-Namen fest. Sie können außerdem das RuleSet ändern. Nach dem Erstellen der Projektmappe befindet sich dies im Abschnitt Microsoft.Samples.Activities.Rules. Mit dem Designer können Sie eine RULES-Datei und ein RuleSet auswählen. Beim Klicken auf die Schaltfläche Regelsatz bearbeiten wird das RuleSetDialog von WF 3.5 angezeigt. Dieses Dialogfeld ist der neu gehostete WF 3.5-Regeleditor. Es wird verwendet, um die von der ExternalizedPolicy4-Aktivität ausgeführten Regeln anzuzeigen und zu bearbeiten.
Policy4 und ExternalPolicy4
Die Richtlinienaktivität in .NET Framework 4-Aktivität ermöglicht es Ihnen, in einem WF 4-Workflow einen .NET Framework 3.5-Regelsatz zu erstellen und auszuführen. Das RuleSet wird inline in der XAML-Definition der Policy4-Aktivität serialisiert. Im ExternalizedPolicy4-Beispiel wird gezeigt, wie ein vorhandenes externes RuleSet (enthalten in einer RULES-Datei) verwendet wird.
Verwenden dieses Beispiels
Zum Ausführen dieses Beispiels ist keine spezielle Einrichtung erforderlich. Öffnen Sie die Projektmappe in Visual Studio 2010, und drücken Sie F5, um die Anwendung auszuführen.
Dieses Beispiel umfasst zwei Clientanwendungen: ImperativeCodeClientSample und DesignerClientSample. Der ImperativeCodeClientSample-Client zeigt, wie die ExternalizedPolicy4-Aktivität mit obligatorischem C#-Code konfiguriert und ausgeführt wird. Das DesignerClientSample zeigt, wie die ExternalizedPolicy4-Aktivität mithilfe des Designers konfiguriert und ausgeführt wird.
So führen Sie die ImperativeCodeClientSample-Anwendung aus
Öffnen Sie mit Visual Studio 2010 die Projektmappendatei Policy4sample.sln.
Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf das Projekt ImperativeCodeClientSample, und wählen Sie Als Startprojekt festlegen.
Drücken Sie zum Ausführen des Projekts die Tasten STRG+F5.
So führen Sie die DesignerClientSample-Anwendung aus
Öffnen Sie mit Visual Studio 2010 die Projektmappendatei Policy4sample.sln.
Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf das Projekt DesignerClientSample, und wählen Sie Als Startprojekt festlegen.
Drücken Sie F6, um das Projekt zu kompilieren.
Drücken Sie zum Ausführen des Projekts die Tasten STRG+F5.
Hinweis: |
---|
Die Beispiele sind möglicherweise bereits auf dem Computer installiert. Überprüfen Sie das folgende (standardmäßige) Verzeichnis, bevor Sie fortfahren.
<Installationslaufwerk>:\WF_WCF_Samples
Wenn dieses Verzeichnis nicht vorhanden ist, rufen Sie Windows Communication Foundation (WCF) and Windows Workflow Foundation (WF) Samples for .NET Framework 4 auf, um alle Windows Communication Foundation (WCF)- und WF-Beispiele herunterzuladen. Dieses Beispiel befindet sich im folgenden Verzeichnis.
<Installationslaufwerk>:\WF_WCF_Samples\WF\Scenario\ActivityLibrary\ExternalizedPolicy4
|