我有一个WindsorContainer。
我有一个ILazyComponentLoader
(如果有关系)和一个接口(ISomething
),其中有一个Interceptor属性。
[Interceptor(typeof(DynamicImplementationInterceptor)]
public interface ISomething
我希望Windsor在通过
ProxyGenerator.CreateInterfaceProxyWithoutTarget
解析接口时使用container.Resolve<ISomething>()
,以便我的DynamicImplementationInterceptor
可以根据需要在外部实现所有行为。我似乎在文档中找不到这种确切的情况...当我使用
ISomething
注册Component.For<ISomething>()....
时,如何指定我想要这种行为? (目前,我收到有关类型为抽象或接口的错误,因此无法实例化...)谢谢!
最佳答案
当您使用拦截器注册组件并且没有实现时,Windsor会自动省略目标,例如:
var container = new WindsorContainer();
container.Register(Component.For<DynamicImplementationInterceptor>());
container.Register(Component.For<ISomething>()
.Interceptors(InterceptorReference.ForType<DynamicImplementationInterceptor>()).First);
不需要任何拦截器属性