Thanks for your answer. The problem is that I potentially create
hundreds of instances of the same interceptor, each with its own
parameters. Wouldn't this bloat the container unnecessarily?
kernel.Register(Component.For<MyInterceptor>().Named
("myInt1").Parameters(Parameter.ForKey("key").Eq("value")));
kernel.Register(Component.For<MyInterceptor>().Named
("myInt2")).Parameters(Parameter.ForKey("key").Eq("value2")));
kernel.Register(Component.For<MyClass>().Interceptors
(InterceptorReference.ForKey("int1"), InterceptorReference.ForKey
("int2"))
I didn't check to see if this compiles, so no complaints =);
On Feb 5, 11:00 am, Andre Loker <[email protected]> wrote:
Hi everyone,
Maybe someone can help me on this one: what I'm trying to achieve - using Windsor -isto have the same interceptor type applied multiple times on the same component but with different parameters.
I can do this:
var c = new WindsorContainer();
c.Register(Component.For<MyClass>());
c.Register(Component.For<MyInterceptor>().LifeStyle.Transient);
var h = c.Kernel.GetHandler(typeof (MyClass));
h.ComponentModel.Interceptors.Add(new InterceptorReference(typeof(MyInterceptor)));
h.ComponentModel.Interceptors.Add(new InterceptorReference(typeof(MyInterceptor)));
h.ComponentModel.Interceptors.Add(new InterceptorReference(typeof(MyInterceptor)));
// three instances of MyInterceptor are created
var mc = c.Resolve<MyClass>();
// each instance of the created interceptor receives one call to Intercept
mc.DoSomething();
But of course, no parameters are passed to the interceptors.
Is there any built in way to pass parameters to the interceptors on creation?
I'm not afraid of extending the Castle code if necessary, but of course I ask beforehand. If a change is required, my idea is to add a dictionary to InterceptorReference that holds the arguments which are passed to the interceptor component on creation, just as it would be done when passing a dictionary to Resolve for extra parameters. Does this sound reasonable?
Regards,
Andre
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Castle Project Users" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/castle-project-users?hl=en
-~----------~----~----~----~------~----~------~--~---
|