Search code examples
c#inversion-of-controlcastle-windsorinterceptorcastle-dynamicproxy

Intercept ALL dependencies with Castle Dynamic Proxy


I'm using Castle Dynamic Proxy interceptor in my code (for logging purpose). I know how to set the interceptor on a dependency, like that:

      container.Register(Component.For<MyService>().
           Interceptors<LoggerInterceptor>());

But how can i set this interceptor to ALL my dependencies?


Solution

  • Before you do any registration of your components you can add a handler that will add your interceptor to every component:

            container.Kernel.ComponentRegistered += (key, handler) =>
            {
                handler.ComponentModel.Interceptors.Add(new InterceptorReference(typeof(LoggingInterceptor)));
            };