2

我有一个温莎集装箱。

我有一个ILazyComponentLoader(如果重要的话)和一个ISomething带有 Interceptor 属性的接口()。

[Interceptor(typeof(DynamicImplementationInterceptor)]
public interface ISomething

我希望 Windsor 在ProxyGenerator.CreateInterfaceProxyWithoutTarget通过接口解析时使用,container.Resolve<ISomething>()以便我DynamicImplementationInterceptor可以在外部按需实现所有行为。

我似乎无法在文档中找到这个确切的场景......当我ISomething使用注册时Component.For<ISomething>()....,我如何指定我想要这种行为?(目前我得到一个关于类型是抽象或接口的错误,所以它不能被实例化......)

谢谢!

4

1 回答 1

2

当您使用拦截器注册组件并且没有实现时,Windsor 将自动省略目标,例如:

var container = new WindsorContainer();
container.Register(Component.For<DynamicImplementationInterceptor>());
container.Register(Component.For<ISomething>()
    .Interceptors(InterceptorReference.ForType<DynamicImplementationInterceptor>()).First);

不需要任何拦截器属性

于 2010-10-09T22:00:48.790 回答