使用Castle Fluent界面注册拦截器

Qui*_*Par 2 c# castle-windsor fluent-interface iinterceptor

我试图通过拦截器实现nhibernate事务处理,并无法弄清楚如何通过流畅的机制注册接口.

我看到了

Component.For<ServicesInterceptor>().Interceptors
Run Code Online (Sandbox Code Playgroud)

但不知道如何使用它.有人可以帮我吗?这个例子看起来有点复杂.

Krz*_*mic 6

你分两步完成:

  • 您需要将拦截器注册为容器中的服务:
container.Register(Component.For<MyInterceptor>());
Run Code Online (Sandbox Code Playgroud)
  • 您注册要拦截的组件.Interceptors在Fluent API上使用方法,您可以指定要拦截哪个已注册的拦截器(按键或类型):
container.Register(Component.For<IFoo>().ImplementedBy<Foo>()
   .Interceptors<MyInterceptor>());
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请参阅文档.