我刚刚学习 Castle Windsor 并尝试使用 AOP 解决一些问题,并希望使用拦截功能来完成此任务。
我已经弄清楚如何通过执行以下操作使其与单个组件一起使用。
container.Register(Component.For<IInterceptor>()
.ImplementedBy<BankServiceLogger>()
.Named("BankServiceInteceptor"));
container.Register(Component.For<IBankService>()
.ImplementedBy<BankService>()
.Interceptors(InterceptorReference.ForKey("BankServiceInteceptor")).Anywhere
.LifestyleTransient());
我的问题是像我在这里所做的那样注册控制器等类时
container.Register(Classes.FromThisAssembly()
.BasedOn<IController>()
.LifestyleTransient());
似乎没有使用拦截器。
注册多个类时有没有办法进行拦截,或者我是否需要单独注册每个组件才能完成此操作?