Sdílet prostřednictvím


Činnost externalizované politiky v .NET Framework 4.5

Ukázka Rules-ExternalizedPolicy4 demonstruje, jak aktivita ExternalizedPolicy4 umožňuje spouštění existujících objektů .NET Framework 3.5 Windows Workflow Foundation (WF 3.5) RuleSet přímo v rozhraní .NET Framework 4.6.1 Windows Workflow Foundation (WF 4.5) pomocí modulu pravidel, který je součástí WF 3.5. Pomocí této aktivity můžete otevřít a spustit všechny existující WF 3.5 RuleSet. Další informace o stroji pravidel WF 3.5, který je součástí windows Workflow Foundation, naleznete v tématu Úvod do stroje pravidel Windows Workflow Foundation. Další informace o migraci pravidel na WF v rozhraní .NET Framework 4.6.1 najdete v pokynech k migraci.

Projekty v této ukázce

Název projektu Popis Hlavní soubory
ExternalizedPolicy4 Obsahuje aktivitu ExternalizedPolicy4 a jeho návrhář WF 4.5. ExternalizedPolicy4.cs: definice aktivity.

ExternalizedPolicy4Designer.xaml: Vlastní návrhář pro aktivitu ExternalizedPolicy4. Používá editor pravidel (RuleSetDialog) z pravidlového motoru WF 3.5.
ImperativeCodeClientSample Ukázková klientská aplikace, která konfiguruje a spouští pracovní postup pomocí aplikace ExternalizedPolicy4 pomocí imperativního kódu jazyka C# (nepoužívá se žádný návrhář). ApplyDiscount.rules: Soubor s definicemi pravidel WF.

Order.cs: Typ, který představuje zákaznickou objednávku. Pravidla se použijí na objekty tohoto typu.

Program.cs: Nakonfiguruje a spustí pracovní postup, který má aktivitu Policy4 pro použití pravidel definovaných v applyDiscount.rules na instance objektů Order.

App.config: Konfigurační soubor s cestou k souboru pravidel.
DesignerClientSample Ukázková klientská aplikace, která konfiguruje a spouští pracovní postup pomocí aplikace ExternalPolicy4 v návrháři WF. Sequence1.xaml: Sekvenční pracovní postup, který používá aktivitu Policy4 k provádění vyhodnocení pravidel.

Program.cs: Spustí instanci pracovního postupu definovaného v souboru Sequence1.xaml.

Aktivita ExternalizedPolicy4

Aktivita ExternalizedPolicy4 je NativeActivity akce, která umožňuje spouštění objektů WF 3.5 RuleSet v rámci pracovních postupů WF 4.5. Následující příklad je zjednodušená definice veřejného objektového modelu aktivity.

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
}
Vlastnictví Popis
RuleSetFilePath Cesta k souboru rozhraní .NET Framework 3.5 RuleSet , který se má vyhodnotit při spuštění aktivity.
NázevSadyPravidel Název RuleSet, který má být použit v souboru .rules.
TargetObject Objekt, podle kterého se hodnotí Rule objekty v RuleSet.
ResultObject Výsledný objekt po použití pravidel (například pravidla se použijí pro argument Vstup a výsledek je uložen v argumentu Výsledek.
Chyba ověření Seznam chyb ověření vrácených strojem pravidel WF 3.5 při ověřování RuleSet proti cílovému objektu před spuštěním.

Návrhář aktivity ExternalizedPolicy4

Návrhář ExternalizedPolicy4 umožňuje nakonfigurovat aktivitu tak, aby používala existující sadu pravidel bez psaní kódu. Stačí nastavit cestu, kde se nachází soubor .rules, a zadat RuleSet název, který chcete použít. Umožňuje také upravit RuleSet. Po sestavení řešení ho najdete na panelu nástrojů v části Microsoft.Samples.Activities.Rules. Návrhář umožňuje vybrat soubor .rules a RuleSet. Po kliknutí na tlačítko Upravit sadu pravidel se zobrazí WF 3.5 RuleSetDialog . Toto dialogové okno je znovu hostovaný editor pravidel WF 3.5 a slouží k zobrazení a úpravě pravidel, která aktivita ExternalizedPolicy4 provádí.

Zásady4 a VnějšíZásady4

Aktivita Politiky umožňuje vytvořit a spustit RuleSet .NET Framework 3.5 v pracovním postupu WF 4.5. RuleSet je serializován inline v definici XAML aktivity Policy4. Ukázka ExternalizedPolicy4 ukazuje, jak použít existující externí RuleSet (obsažený v souboru .rules).

Použít tuto ukázku

Ke spuštění této ukázky není nutná žádná speciální nastavení. Otevřete řešení v sadě Visual Studio a stisknutím klávesy F5 spusťte aplikaci.

Tato ukázka obsahuje dvě klientské aplikace: ImperativeCodeClientSample a DesignerClientSample. Klient ImperativeCodeClientSample ukazuje, jak nakonfigurovat a spustit aktivitu ExternalizedPolicy4 pomocí imperativního kódu jazyka C#. DesignerClientSample ukazuje, jak nakonfigurovat a spustit aktivitu ExternalizedPolicy4 pomocí návrháře.

Spuštění aplikace ImperativeCodeClientSample

  1. V sadě Visual Studio otevřete soubor řešení Policy4sample.sln .

  2. V Průzkumníku řešení klikněte pravým tlačítkem myši na projekt ImperativeCodeClientSample a pak vyberte Nastavit jako spouštěný projekt.

  3. Pokud chcete projekt spustit, stiskněte Ctrl+F5.

Spuštění aplikace DesignerClientSample

  1. V sadě Visual Studio otevřete soubor řešení Policy4sample.sln .

  2. V Průzkumníku řešení klikněte pravým tlačítkem myši na projekt DesignerClientSample a pak vyberte Nastavit jako spouštěný projekt.

  3. Stisknutím kláves Ctrl+Shift+B zkompilujte projekt.

  4. Stisknutím kláves Ctrl+F5 spusťte projekt.