Registre um interceptador na interface fluente do castelo
-
24-09-2019 - |
Pergunta
Estou tentando implementar Manipulação de transações de Nibernato por meio de interceptores e não conseguiu descobrir como registrar a interface através do mecanismo fluente.
Eu vejo uma
Component.For<ServicesInterceptor>().Interceptors
Mas não tenho certeza de como usá -lo. Alguém pode me ajudar? Este exemplo parecia um pouco complexo.
Solução
Você faz isso em duas etapas:
- Você precisa registrar o interceptador como um serviço no contêiner:
container.Register(Component.For<MyInterceptor>());
- Você registra o componente que deseja interceptar. Usando
Interceptors
Método na API fluente Você especifica qual dos interceptores registrados (por chave ou tipo) com quem deseja interceptar esse componente:
container.Register(Component.For<IFoo>().ImplementedBy<Foo>() .Interceptors<MyInterceptor>());
Ver a documentação para mais detalhes.
Outras dicas
Primeiro registre o interceptor:
container.Register(Component.For<IDbInterceptor>().ImplementedBy<DbInterceptor>().Named("transactionInterceptor"));
Em seguida, registre o objetivo de ser interceptado:
CONTENTER.REGISTER (Component.foru003CIMyService> ().Implementado poru003CMyService> () .Named ("MyService"). Interceptores (nova interceptorreferência ("transactionInterceptor")). Em qualquer lugar);