我有一个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);


不需要任何拦截器属性

07-24 13:56