开发者

Register an Interceptor with Castle Fluent Interface

开发者 https://www.devze.com 2022-12-25 20:48 出处:网络
I am trying to implement nhibernate transaction handling through Interceptors and couldn’t figure out how to register the interface through fluent mechanism.

I am trying to implement nhibernate transaction handling through Interceptors and couldn’t figure out how to register the interface through fluent mechanism.

I see a

Component.For<ServicesInterceptor>().Int开发者_StackOverflow社区erceptors

but not sure how to use it. Can someone help me out? This example seemed a little complex.


You do it in two steps:

  • You need to register the interceptor as a service in the container:
container.Register(Component.For<MyInterceptor>());
  • You register the component you want to intercept. Using Interceptors method on fluent API you specify which of the registered interceptors (by key, or type) you want to intercept this component with:
container.Register(Component.For<IFoo>().ImplementedBy<Foo>()
   .Interceptors<MyInterceptor>());

See the documentation for more details.


First register the interceptor:

container.Register(Component.For<IDbInterceptor>().ImplementedBy<DbInterceptor>().Named("transactionInterceptor"));

Then register the objecting being intercepted:

container.Register(Component.For<IMyService>().ImplementedBy<MyService>().Named("MyService"). Interceptors(new InterceptorReference("transactionInterceptor")).Anywhere);

0

精彩评论

暂无评论...
验证码 换一张
取 消