Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
DetRules-ExternalizedPolicy4 exemplet visar hur externalizedPolicy4-aktiviteten tillåter körning av befintliga .NET Framework 3.5 Windows Workflow Foundation-objekt (WF 3.5) RuleSet i .NET Framework 4.6.1 Windows Workflow Foundation (WF 4.5) direkt med hjälp av regelmotorn som levereras i WF 3.5. Genom att använda den här aktiviteten kan du öppna och köra alla befintliga WF 3.5 RuleSet. Mer information om WF 3.5-regelmotorn som ingår i Windows Workflow Foundation finns i Introduktion till Windows Workflow Foundation Rules Engine. Mer information om hur du migrerar regler till WF i .NET Framework 4.6.1 finns i Migreringsvägledning.
Projekt i det här exemplet
| Projektnamn | Beskrivning | Huvudfiler | 
|---|---|---|
| ExternalizedPolicy4 | Innehåller aktiviteten ExternalizedPolicy4 och dess WF 4.5-designer. | 
              ExternalizedPolicy4.cs: aktivitetsdefinition. ExternalizedPolicy4Designer.xaml: Anpassad designer för externalizedPolicy4-aktivitet. Den använder regelredigeraren (RuleSetDialog) från WF 3.5 Rules Engine.  | 
| ImperativeCodeClientSample | Exempelklientprogram som konfigurerar och kör ett arbetsflöde med hjälp av ett ExternalizedPolicy4-program med imperativ C#-kod (ingen designer används). | 
              ApplyDiscount.rules: Fil med WF-regeldefinitioner. Order.cs: Typ som representerar en kundorder. Regler tillämpas på objekt av den här typen. Program.cs: Konfigurerar och kör ett arbetsflöde som har en Policy4-aktivitet för att tillämpa regler som definierats i ApplyDiscount.rules på instanser av Order-objekt. App.config: Konfigurationsfilen med sökvägen till regelfilen.  | 
| DesignerClientSample | Exempelklientprogram som konfigurerar och kör ett arbetsflöde med hjälp av ett ExternalPolicy4-program i WF Designer. | 
              Sequence1.xaml: Sekventiellt arbetsflöde som använder en Policy4-aktivitet för att utföra regelutvärderingar. Program.cs: Kör en instans av arbetsflödet som definierats i Sequence1.xaml.  | 
ExternalizedPolicy4-aktiviteten
ExternalizedPolicy4-aktiviteten är en NativeActivity aktivitet som tillåter körning av WF 3.5-objekt RuleSet i WF 4.5-arbetsflöden. Följande exempel är en förenklad definition av aktivitetens offentliga objektmodell.
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
}
| Fastighet | Beskrivning | 
|---|---|
| Regeluppsättningsfilväg | Sökväg till .NET Framework 3.5-filen RuleSet som ska utvärderas när aktiviteten körs. | 
| RuleSetName | Namnet på RuleSet som ska användas i .rules-filen. | 
| Målobjekt | Objektet som objekten Rule i RuleSet utvärderas mot. | 
| ResultObject | Det resulterande objektet efter att reglerna har tillämpats (till exempel tillämpas regler mot argumentet Input och resultatet lagras i argumentet Resultat. | 
| ValidationError | Listan över valideringsfel som returneras av WF 3.5-regelmotorn när RuleSet valideras mot målobjektet före körning. | 
ExternalizedPolicy4 aktivitetsdesigner
Med ExternalizedPolicy4-designern kan du konfigurera en aktivitet för att använda en befintlig RuleSet utan att skriva kod. Ange bara sökvägen där .rules-filen finns och ange det RuleSet namn som du vill använda. Du kan också ändra RuleSet. När du har skapat lösningen finns den i verktygslådan i avsnittet Microsoft.Samples.Activities.Rules. Med designern kan du välja en .rules-fil och en RuleSet. När knappen Redigera regeluppsättning klickas visas WF 3.5 RuleSetDialog . Den här dialogrutan är den omvärdade WF 3.5-regelredigeraren och används för att visa och redigera de regler som externalizedPolicy4-aktiviteten kör.
Policy4 och ExternalPolicy4
Med principaktiviteten kan du skapa och köra en .NET Framework 3.5 RuleSet i ett WF 4.5-arbetsflöde. RuleSet serialiseras inline i XAML-definitionen för aktiviteten Policy4. Exemplet ExternalizedPolicy4 visar hur du använder en befintlig extern RuleSet (som finns i en .rules-fil).
Använd det här exemplet
Ingen särskild konfiguration krävs för att köra det här exemplet. Öppna lösningen i Visual Studio och tryck sedan på F5 för att köra programmet.
Det här exemplet innehåller två klientprogram: ImperativeCodeClientSample och DesignerClientSample. ImperativeCodeClientSample-klienten visar hur du konfigurerar och kör externalizedPolicy4-aktiviteten med C#-imperativ kod. DesignerClientSample visar hur du konfigurerar och kör aktiviteten ExternalizedPolicy4 med hjälp av designern.
Kör ImperativeCodeClientSample-programmet
Använd Visual Studio och öppna Policy4sample.sln lösningsfilen.
Högerklicka på projektet ImperativeCodeClientSample i Solution Explorer och välj sedan Ange som startprojekt.
Om du vill köra projektet trycker du på Ctrl+F5.
Kör programmet DesignerClientSample
Använd Visual Studio och öppna Policy4sample.sln lösningsfilen.
Högerklicka på projektet DesignerClientSample i Solution Explorer och välj sedan Ange som startprojekt.
Tryck på Ctrl+Skift+B för att kompilera projektet.
Kör projektet genom att trycka på Ctrl+F5 .