Pubblicare un Interceptor con il castello di Fluent interfaccia
-
24-09-2019 - |
Domanda
Sto cercando di implementare transazione NHibernate movimentazione attraverso Interceptors e non poteva capire come registrare l'interfaccia attraverso meccanismo fluente.
Vedo un
Component.For<ServicesInterceptor>().Interceptors
ma non è sicuro come usarlo. Qualcuno mi può aiutare? Questo esempio sembrava un po 'complesso.
Soluzione
Lo fai in due fasi:
- È necessario registrare l'intercettatore come servizio nel contenitore:
container.Register(Component.For<MyInterceptor>());
- Si registra il componente che si desidera intercettare. Utilizzando il metodo
Interceptors
su API fluente di specificare quale dei intercettori registrati (con chiave, o tipo) che si desidera intercettare questo componente con:
container.Register(Component.For<IFoo>().ImplementedBy<Foo>() .Interceptors<MyInterceptor>());
la documentazione per ulteriori dettagli.
Altri suggerimenti
il primo registro intercettore:
container.Register(Component.For<IDbInterceptor>().ImplementedBy<DbInterceptor>().Named("transactionInterceptor"));
Quindi registrare l'essere obiettare intercettato:
container.Register (Component.For
(). ImplementedBy (). Nominato ( "MyService"). Interceptors (nuova InterceptorReference ( "transactionInterceptor")) Anywhere);.