Externe beleidsactiviteit in .NET Framework 4.5
In het voorbeeld Rules-ExternalizedPolicy4 ziet u hoe met de activiteit ExternalizedPolicy4 bestaande .NET Framework 3.5 Windows Workflow Foundation-objecten (WF 3.5) RuleSet in .NET Framework 4.6.1 Windows Workflow Foundation (WF 4.5) rechtstreeks kunnen worden uitgevoerd met behulp van de regelengine die wordt verzonden in WF 3.5. Met deze activiteit kunt u elke bestaande WF 3.5 RuleSetopenen en uitvoeren. Lees Inleiding tot de Windows Workflow Foundation-regelengine voor meer informatie over de WF 3.5-regelengine die deel uitmaakt van Windows Workflow Foundation. Zie de migratierichtlijnen voor meer informatie over het migreren van regels naar WF in .NET Framework 4.6.1.
Projecten in dit voorbeeld
Projectnaam | Beschrijving | Hoofdbestanden |
---|---|---|
ExternalizedPolicy4 | Bevat de activiteit ExternalizedPolicy4 en de WF 4.5-ontwerper. | ExternalizedPolicy4.cs: activiteitsdefinitie. ExternalizedPolicy4Designer.xaml: Custom designer for ExternalizedPolicy4 activity. De editor Regels (RuleSetDialog) van WF 3.5-regelengine wordt gebruikt. |
ImperatieveCodeClientSample | Voorbeeldclienttoepassing die een werkstroom configureert en uitvoert met behulp van een ExternalizedPolicy4-toepassing met behulp van imperatieve C#-code (geen ontwerper gebruikt). | ApplyDiscount.rules: Bestand met WF-regeldefinities. Order.cs: Type dat een klantorder vertegenwoordigt. Regels worden toegepast op objecten van dit type. Program.cs: hiermee configureert en voert u een werkstroom uit die een Policy4-activiteit heeft om regels toe te passen die zijn gedefinieerd in ApplyDiscount.rules op exemplaren van Order-objecten. App.config: Het configuratiebestand met het pad van het regelsbestand. |
DesignerClientSample | Voorbeeldclienttoepassing die een werkstroom configureert en uitvoert met behulp van een ExternalPolicy4-toepassing in WF Designer. | Sequence1.xaml: Sequentiële werkstroom die gebruikmaakt van een Policy4-activiteit om regelevaluaties uit te voeren. Program.cs: voert een exemplaar uit van de werkstroom die is gedefinieerd in Sequence1.xaml. |
De activiteit ExternalizedPolicy4
De activiteit ExternalizedPolicy4 is een NativeActivity activiteit waarmee WF 3.5-objecten RuleSet in WF 4.5-werkstromen kunnen worden uitgevoerd. Het volgende voorbeeld is een vereenvoudigde definitie van het openbare objectmodel van de activiteit.
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
}
Eigenschappen | Beschrijving |
---|---|
RuleSetFilePath | Pad naar het .NET Framework 3.5-bestand RuleSet dat moet worden geëvalueerd wanneer de activiteit wordt uitgevoerd. |
RuleSetName | De naam van de RuleSet naam die moet worden gebruikt in het .rules-bestand. |
TargetObject | Het object waarop de Rule objecten in de objecten RuleSet worden geëvalueerd. |
ResultObject | Het resulterende object nadat de regels zijn toegepast (regels worden bijvoorbeeld toegepast op het argument Invoer en het resultaat wordt opgeslagen in het argument Resultaat. |
ValidationError | De lijst met validatiefouten die worden geretourneerd door de WF 3.5-regelengine bij het valideren RuleSet van het doelobject vóór uitvoering. |
ExternalizedPolicy4 Activity Designer
Met de designer ExternalizedPolicy4 kunt u een activiteit configureren om een bestaande RuleSet te gebruiken zonder code te schrijven. Stel het pad in waar het .rules-bestand zich bevindt en geef de RuleSet naam op die u wilt gebruiken. Hiermee kunt u ook de RuleSet. Na het bouwen van de oplossing vindt u deze in de werkset in de sectie Microsoft.Samples.Activities.Rules. Met de ontwerpfunctie kunt u een .rules-bestand en een RuleSet. Wanneer op de knop RuleSet bewerken wordt geklikt, wordt de WF 3.5 RuleSetDialog weergegeven. Dit dialoogvenster is de opnieuw gehoste WF 3.5-regelseditor en wordt gebruikt voor het weergeven en bewerken van de regels die door de activiteit ExternalizedPolicy4 worden uitgevoerd.
Policy4 en ExternalPolicy4
Met de beleidsactiviteit kunt u een .NET Framework 3.5 RuleSet maken en uitvoeren in een WF 4.5-werkstroom. De RuleSet regel wordt inline geserialiseerd in de XAML-definitie van de policy4-activiteit. In het voorbeeld ExternalizedPolicy4 ziet u hoe u een bestaand extern RuleSet (opgenomen in een .rules-bestand) gebruikt.
Dit voorbeeld gebruiken
Er is geen speciale configuratie vereist om dit voorbeeld uit te voeren. Open de oplossing in Visual Studio en druk op F5 om de toepassing uit te voeren.
Dit voorbeeld bevat twee clienttoepassingen: ImperatieveCodeClientSample en DesignerClientSample. De ImperCodeClientSample-client laat zien hoe u de activiteit ExternalizedPolicy4 configureert en uitvoert met behulp van C#-imperatieve code. De DesignerClientSample laat zien hoe u de activiteit ExternalizedPolicy4 configureert en uitvoert met behulp van de ontwerpfunctie.
De ImperCodeClientSample-toepassing uitvoeren
Open met Visual Studio het Policy4sample.sln-oplossingsbestand .
Klik in Solution Explorer met de rechtermuisknop op het ImperCodeClientSample-project en selecteer Vervolgens Instellen als opstartproject.
Druk op Ctrl+F5 om het project uit te voeren.
De DesignerClientSample-toepassing uitvoeren
Open met Visual Studio het Policy4sample.sln-oplossingsbestand .
Klik in Solution Explorer met de rechtermuisknop op het project DesignerClientSample en selecteer Instellen als opstartproject.
Druk op Ctrl+Shift+B om het project te compileren.
Druk op Ctrl+F5 om het project uit te voeren.