Filtrando eventos no COM+
O COM+ Events fornece duas maneiras de controlar quais eventos alcançam quais assinantes: filtragem de editor e filtragem de parâmetros.
Filtragem do Publisher
A filtragem do editor controla a ordem e o disparo de um método de evento por um objeto de classe de evento. A filtragem do editor permite que o editor determine quais assinantes recebem um evento específico.
Um exemplo de uso eficaz da filtragem de editores é o de uma bolsa de valores. A maioria dos assinantes quer saber quando uma nova ação é adicionada. No entanto, muitos desses mesmos assinantes podem não querer saber sempre que o preço de cada ação muda. A filtragem de editores fornece a granularidade necessária para entregar eventos com eficiência apenas aos assinantes que desejam essas informações.
Quando um método é chamado no objeto de classe de evento instanciado, ele coleta todos os filtros de editor nesse método. O filtro força o objeto de evento a disparar o método de evento para um assinante específico. O filtro determina quais assinaturas devem ser acionadas e em que ordem dispará-las. Por exemplo, o filtro poderia ler a lista de assinaturas e criar a ordem com base em alguns critérios de aplicativo e, em seguida, chamar os assinantes nessa ordem.
Para obter instruções detalhadas sobre como criar um filtro de editor, consulte Criando um filtro de editor.
Filtragem de parâmetros
Em contraste com a filtragem do editor, o serviço COM+ Events fornece uma filtragem de parâmetro de assinante opcional para cada assinatura e cada chamada de método de evento. A filtragem de parâmetros avalia a propriedade FilterCriteria da assinatura em relação aos parâmetros do método de evento. Esse tipo de filtragem é usado por método, por assinatura e fornece um nível de filtragem de assinante na origem do evento. A cadeia de caracteres de critérios de filtro reconhece operadores relacionais para verificar a igualdade (=, ==, , !=, ~, ~=, ), parênteses aninhados e palavras-chave lógicas AND, <>OR ou NOT.
A filtragem de parâmetros ocorre após qualquer filtragem de editor e quando o objeto de evento padrão é acionado para uma determinada assinatura. Se a filtragem de editor for usada, a filtragem de parâmetros ocorrerá somente quando o filtro de editor invocar IFiringControl::FireSubscription. Por isso, a filtragem do editor e a filtragem de parâmetros podem compor juntas, mas a filtragem do editor tem precedência.
Tópicos relacionados