Condividi tramite


Attività delle politiche esterne in .NET Framework 4.5

L'esempioRules-ExternalizedPolicy4 illustra come l'attività ExternalizedPolicy4 consenta l'esecuzione di oggetti .NET Framework 3.5 Windows Workflow Foundation (WF 3.5) RuleSet in .NET Framework 4.6.1 Windows Workflow Foundation (WF 4.5) direttamente usando il motore regole fornito in WF 3.5. Usando questa attività, è possibile aprire ed eseguire qualsiasi ESISTENTE WF 3.5 RuleSet. Per altre informazioni sul motore regole di WF 3.5 incluso nell'ambito di Windows Workflow Foundation, vedere Introduzione al motore regole di Windows Workflow Foundation. Per altre informazioni sulla migrazione delle regole a WF in .NET Framework 4.6.1, vedere la Guida alla migrazione.

Progetti in questo esempio

Nome progetto Descrizione File principali
PoliticaEsterna4 Contiene l'attività ExternalizedPolicy4 e la relativa finestra di progettazione WF 4.5. ExternalizedPolicy4.cs: definizione dell'attività.

ExternalizedPolicy4Designer.xaml: progettazione personalizzata per l'attività ExternalizedPolicy4. Usa l'editor regole (RuleSetDialog) di WF 3.5 Rules Engine.
ImperativeCodeClientSample Applicazione client di esempio che configura ed esegue un flusso di lavoro usando un'applicazione ExternalizedPolicy4 usando codice C# imperativo (nessuna finestra di progettazione usata). ApplyDiscount.rules: file con definizioni di regole WF.

Order.cs: tipo che rappresenta un ordine del cliente. Le regole vengono applicate agli oggetti di questo tipo.

Program.cs: configura ed esegue un flusso di lavoro con un'attività Policy4 per applicare regole definite in ApplyDiscount.rules alle istanze degli oggetti Order.

App.config: file di configurazione con il percorso del file delle regole.
DesignerClientSample Applicazione client di esempio che configura ed esegue un flusso di lavoro usando un'applicazione ExternalPolicy4 in Progettazione WF. Sequence1.xaml: flusso di lavoro sequenziale che usa un'attività Policy4 per eseguire valutazioni delle regole.

Program.cs: esegue un'istanza del flusso di lavoro definito in Sequence1.xaml.

Attività ExternalizedPolicy4

L'attività ExternalizedPolicy4 è un oggetto NativeActivity che consente l'esecuzione di oggetti WF 3.5 RuleSet all'interno di flussi di lavoro di WF 4.5. L'esempio seguente è una definizione semplificata del modello a oggetti pubblico dell'attività.

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
}
Proprietà Descrizione
RuleSetFilePath Percorso del file .NET Framework 3.5 RuleSet da valutare quando viene eseguita l'attività.
RuleSetName Nome del RuleSet da utilizzare all'interno del file .rules.
TargetObject Oggetto su cui vengono valutati gli oggetti Rule nel contesto di RuleSet.
ResultObject Oggetto risultante dopo l'applicazione delle regole( ad esempio, le regole vengono applicate all'argomento Input e il risultato viene archiviato nell'argomento Result.
ValidationError Elenco degli errori di convalida restituiti dal motore regole di WF 3.5 durante la convalida dell'oggetto RuleSet rispetto all'oggetto di destinazione prima dell'esecuzione.

Designer di Attività ExternalizedPolicy4

La finestra di progettazione ExternalizedPolicy4 consente di configurare un'attività per l'uso di un RuleSet esistente senza scrivere codice. È sufficiente impostare il percorso in cui si trova il file con estensione rules e specificare il RuleSet nome desiderato. Consente inoltre di modificare il RuleSet. Dopo aver compilato la soluzione, è disponibile nella casella degli strumenti nella sezione Microsoft.Samples.Activities.Rules. La finestra di progettazione consente di selezionare un file .rules e un RuleSet. Quando si fa clic sul pulsante Modifica ruleSet , viene visualizzato WF 3.5 RuleSetDialog . Questa finestra di dialogo è l'editor regole WF 3.5 ospitato di nuovo e viene usato per visualizzare e modificare le regole eseguite dall'attività ExternalizedPolicy4.

Policy4 e ExternalPolicy4

L'attività Criteri consente di creare ed eseguire un RuleSet di .NET Framework 3.5 in un flusso di lavoro di WF 4.5. L'oggetto RuleSet viene serializzato in linea nella definizione XAML dell'attività Policy4. L'esempio ExternalizedPolicy4 mostra come usare un oggetto esterno RuleSet esistente (contenuto in un file con estensione rules).

Usare questo esempio

Per eseguire questo esempio non è necessaria alcuna configurazione speciale. Aprire la soluzione in Visual Studio e quindi premere F5 per eseguire l'applicazione.

Questo esempio contiene due applicazioni client: ImperativeCodeClientSample e DesignerClientSample. Il client ImperativeCodeClientSample mostra come configurare ed eseguire l'attività ExternalizedPolicy4 usando il codice imperativo C#. DesignerClientSample mostra come configurare ed eseguire l'attività ExternalizedPolicy4 usando la finestra di progettazione.

Eseguire l'applicazione ImperativeCodeClientSample

  1. Usando Visual Studio, aprire il file della soluzione Policy4sample.sln .

  2. In Esplora soluzioni fare clic con il pulsante destro del mouse sul progetto ImperativeCodeClientSample e quindi scegliere Imposta come progetto di avvio.

  3. Per eseguire il progetto, premere CTRL+F5.

Eseguire l'applicazione DesignerClientSample

  1. Usando Visual Studio, aprire il file della soluzione Policy4sample.sln .

  2. In Esplora soluzioni fare clic con il pulsante destro del mouse sul progetto DesignerClientSample e quindi scegliere Imposta come progetto di avvio.

  3. Premere CTRL+MAIUSC+B per compilare il progetto.

  4. Premere CTRL+F5 per eseguire il progetto.