Castle windsor 如何安装具有通用组件的(方法)拦截器
给定以下代码:Castle windsor 如何安装具有通用组件的(方法)拦截器,castle-windsor,Castle Windsor,给定以下代码: container.Register( AllTypes.FromAssemblyNamed("MyNameSpace") .Where(component => component.Name.EndsWith("Repository")) .WithService.FirstInterface() .Configure(c
container.Register(
AllTypes.FromAssemblyNamed("MyNameSpace")
.Where(component => component.Name.EndsWith("Repository"))
.WithService.FirstInterface()
.Configure(component => component.LifeStyle.Singleton)
);
是否可以为找到的所有组件引入拦截器(如LoggingInterceptor)?我现在唯一的办法是分解每个组件并显式添加拦截器,我发现这是违反直觉的,因为它们将使用一个拦截器(即LoggingInterceptor)
谢谢container.Register(
AllTypes.FromAssemblyNamed(“MyNameSpace”)
.Where(component=>component.Name.EndsWith(“存储库”))
.WithService.FirstInterface()
.Configure(component=>component.lifety.Singleton.Interceptors(InterceptorReference.ForType())
);
container.Register(Component.For());
container.Register(
AllTypes.FromAssemblyNamed(“MyNameSpace”)
.Where(component=>component.Name.EndsWith(“存储库”))
.WithService.FirstInterface()
.Configure(component=>component.lifety.Singleton.Interceptors(InterceptorReference.ForType())
);
container.Register(Component.For());
sidenote-可能DefaultInterface
比2.1中的FirstInterface
这里是DefaultInterface()?sidenote-可能DefaultInterface
比2.1中的FirstInterface
这里是DefaultInterface()好?
container.Register(
AllTypes.FromAssemblyNamed("MyNameSpace")
.Where(component => component.Name.EndsWith("Repository"))
.WithService.FirstInterface()
.Configure(component => component.LifeStyle.Singleton.Interceptors(InterceptorReference.ForType<LoggingInterceptor>()))
);
container.Register(Component.For<LoggingInterceptor>());