Partilhar via


Atividade de política externalizada no .NET Framework 4.5

O exemplo Rules-ExternalizedPolicy4 demonstra como a atividade ExternalizedPolicy4 permite executar objetos existentes do .NET Framework 3.5 Windows Workflow Foundation (WF 3.5) RuleSet no .NET Framework 4.6.1 Windows Workflow Foundation (WF 4.5) diretamente usando o mecanismo de regras fornecido no WF 3.5. Usando essa atividade, você pode abrir e executar qualquer WF 3.5 RuleSetexistente. Para obter mais informações sobre o WF 3.5 Rules Engine incluído como parte do Windows Workflow Foundation, leia Introdução ao Windows Workflow Foundation Rules Engine. Para obter mais informações sobre como migrar regras para WF no .NET Framework 4.6.1, consulte as Diretrizes de migração.

Projetos neste exemplo

Nome do Projeto Description Ficheiros principais
Política Externalizada4 Contém a atividade ExternalizedPolicy4 e seu designer WF 4.5. ExternalizedPolicy4.cs: definição da atividade.

ExternalizedPolicy4Designer.xaml: Designer personalizado para a atividade ExternalizedPolicy4. Ele usa o editor de regras (RuleSetDialog) do WF 3.5 Rules Engine.
ImperativeCodeClientSample Aplicativo cliente de exemplo que configura e executa um fluxo de trabalho usando um aplicativo ExternalizedPolicy4 usando código C# imperativo (nenhum designer usado). ApplyDiscount.rules: Arquivo com definições de regra WF.

Order.cs: Tipo que representa um pedido do cliente. As regras são aplicadas a objetos desse tipo.

Program.cs: Configura e executa um fluxo de trabalho que tem uma atividade Policy4 para aplicar regras definidas em ApplyDiscount.rules a instâncias de objetos Order.

App.config: O arquivo de configuração com o caminho do arquivo de regras.
DesignerClientSample Aplicativo cliente de exemplo que configura e executa um fluxo de trabalho usando um aplicativo ExternalPolicy4 no WF Designer. Sequence1.xaml: fluxo de trabalho sequencial que usa uma atividade Policy4 para executar avaliações de regras.

Program.cs: Executa uma instância do fluxo de trabalho definido em Sequence1.xaml.

A atividade ExternalizedPolicy4

A atividade ExternalizedPolicy4 é uma NativeActivity atividade que permite executar objetos WF 3.5 RuleSet dentro de fluxos de trabalho WF 4.5. O exemplo a seguir é uma definição simplificada do modelo de objeto público da atividade.

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
}
Property Description
RuleSetFilePath Caminho para o arquivo do .NET Framework 3.5 RuleSet a ser avaliado quando a atividade for executada.
RuleSetName Nome do RuleSet arquivo a ser usado no arquivo .rules.
TargetObject O objeto no qual os Rule objetos no RuleSet é avaliado contra.
ResultObject O objeto resultante depois que as regras são aplicadas (por exemplo, as regras são aplicadas contra o argumento Input e o resultado é armazenado no argumento Result.
Erro de validação A lista de erros de validação retornados pelo mecanismo de regras do WF 3.5 ao validar o objeto de destino antes da RuleSet execução.

Designer de Atividades ExternalizedPolicy4

O designer ExternalizedPolicy4 permite configurar uma atividade para usar um RuleSet existente sem escrever código. Basta definir o caminho onde o arquivo .rules está localizado e especificar o RuleSet nome que você deseja usar. Ele também permite que você modifique o RuleSet. Depois de criar a solução, ela pode ser encontrada na caixa de ferramentas na seção Microsoft.Samples.Activities.Rules. O designer permite que você selecione um arquivo .rules e um RuleSetarquivo . Quando o botão Edit RuleSet é clicado, o WF 3.5 RuleSetDialog é exibido. Esta caixa de diálogo é o editor de regras do WF 3.5 rehospedado e é usada para exibir e editar as regras que a atividade ExternalizedPolicy4 executa.

Política4 e Política Externa4

A atividade Policy permite criar e executar um .NET Framework 3.5 RuleSet em um fluxo de trabalho do WF 4.5. O RuleSet é serializado embutido na definição XAML da atividade Policy4. O exemplo ExternalizedPolicy4 mostra como usar um externo RuleSet existente (contido em um arquivo .rules).

Use este exemplo

Nenhuma configuração especial é necessária para executar este exemplo. Abra a solução no Visual Studio e pressione F5 para executar o aplicativo.

Este exemplo contém dois aplicativos cliente: ImperativeCodeClientSample e DesignerClientSample. O cliente ImperativeCodeClientSample mostra como configurar e executar a atividade ExternalizedPolicy4 usando código imperativo C#. O DesignerClientSample mostra como configurar e executar a atividade ExternalizedPolicy4 usando o designer.

Execute o aplicativo ImperativeCodeClientSample

  1. Usando o Visual Studio, abra o arquivo de solução Policy4sample.sln .

  2. No Gerenciador de Soluções, clique com o botão direito do mouse no projeto ImperativeCodeClientSample e selecione Definir como projeto de inicialização.

  3. Para executar o projeto, pressione Ctrl+F5.

Execute o aplicativo DesignerClientSample

  1. Usando o Visual Studio, abra o arquivo de solução Policy4sample.sln .

  2. No Gerenciador de Soluções, clique com o botão direito do mouse no projeto DesignerClientSample e selecione Definir como projeto de inicialização.

  3. Pressione Ctrl+Shift+B para compilar o projeto.

  4. Pressione Ctrl+F5 para executar o projeto.