【发布时间】:2011-08-17 10:44:01
【问题描述】:
我已将CollectionResolver 添加为我的 Windsor 内核的子解析器,它将正确地注入已解析对象的依赖项集合。也就是说,如果我有
class X { public X(IComponent[] components) { ... } }
container.Register(/* lots of IComponents */);
container.Register(Component.For<X>());
当我解决它时,构造函数的 components 参数是正确构造的
container.Resolve<X>()
但如果我只想自己获取组件列表,
container.Resolve<IComponent[]>()
我收到一个ComponentNotFound 异常,抱怨我没有为IComponent[] 注册任何组件。我发现这种不对称是违反直觉的,因为我不确定为什么内核在解决它在构造函数/属性上找到的依赖项时与它在解决用户希望它解决的依赖项时的行为不同。
【问题讨论】:
标签: castle-windsor ioc-container