Ordem de Execução dos Behaviors

A utilização dos behaviors no WCF nos permite adicionar algum código customizado durante a execução do serviço ou cliente. Há tres diferentes escopos onde eles podem existir: serviço, endpoint ou operação. E, para customizar cada um deles, é necessário implementar as Interfaces IServiceBehavior, IEndpointBehavior e IOperationBehavior, respectivamente.

Para adicioná-los, podemos utilizar a forma imperativa, utilizando as coleções de Behaviors existentes em cada ponto. Além disso, como quase tudo no WCF, também há possibilidade de vincularmos esses behaviors através do modo declarativo, utilizando o arquivo de configuração ou simplesmente atributos (herdando da classe Attribute).

A ordem de execução destes behaviors acontece na mesma ordem em que eles são adicionados, independentemente do modo (declarativo ou imperativo). Sendo assim, quando criar e adicionar mais que um behavior customizado para efetuar alguma tarefa, atente-se a ordem em que eles são adicionados ao runtime. Vale lembrar que isso não se faz necessário quando os behaviors que são adicionados são completamente autonomos.