Registrar un interceptor con el castillo Fluido Interfaz
-
24-09-2019 - |
Pregunta
Estoy tratando de poner en práctica transacción nhibernate manejo través de interceptores y no pudo encontrar la manera de registrar la interfaz a través del mecanismo de fluidez.
Veo un
Component.For<ServicesInterceptor>().Interceptors
pero no sabe cómo usarlo. ¿Alguien me puede ayudar? Este ejemplo parecía un poco compleja.
Solución
Lo hace en dos pasos:
- Es necesario registrar el interceptor como un servicio en el contenedor:
container.Register(Component.For<MyInterceptor>());
- Registrar el componente que desea interceptar. Utilizando el método de
Interceptors
API fluida se especifica cuál de los interceptores registrados (por clave o tipo) que desea interceptar este componente con:
container.Register(Component.For<IFoo>().ImplementedBy<Foo>() .Interceptors<MyInterceptor>());
la documentación para más detalles.
Otros consejos
En primer lugar se registra el interceptor:
container.Register(Component.For<IDbInterceptor>().ImplementedBy<DbInterceptor>().Named("transactionInterceptor"));
A continuación, se registra el ser interceptado objetar:
container.Register (Component.For
(). ImplementedBy (). El nombre ( "MyService"). Los interceptores (nueva InterceptorReference ( "TransactionInterceptor")) Anywhere);.