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.

Foi útil?

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);

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top