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.

¿Fue útil?

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top