我在几个代码示例中看到人们使用 IKernel
而不是使用 IWindsorContainer
。为什么是这样?
在上面的例子中它开始咬我,因为我添加了一个子解析器
Container.Kernel.Resolver.AddSubResolver(
new CollectionResolver(Container.Kernel, true));
这将允许我注入(inject)集合...但是它没有用。我发现因为只使用了 IKernel
,所以它无法使用 Windsor 的全部功能。为什么有人想要在整个容器上使用内核?我认为如果您要实现 Windsor,请使用完整的容器。我错了吗?为什么?
最佳答案
这是有历史原因的。 CaSTLe 项目最初有两个容器:MicroKernel (IKernel
) 提供所有基本功能和扩展点,Windsor IWindsorContainer
是 MicroKernel 的包装器,提供附加功能(如 XML配置、代理等)并包装微内核。
后来(在 v2.5 中)将它们合并到一个项目/程序集中,但为了避免破坏现有用户,保留了区别。
关于c# - 为什么使用 IKernel 而不是 IWindsorContainer?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6795560/