Csharp/C#教程:为什么在IWindsorContainer上使用IKernel?分享


为什么在IWindsorContainer上使用IKernel?

我在几个代码示例中看到人们使用了IKernel而不是使用IWindsorContainer 。 为什么是这样?

这是一个例子: http : //docs.castleproject.org/(S(kwaa14uzdj55gv55dzgf0vui))/ Windsor.Windsor-tutorial-part-two-plugging-Windsor-in.ashx

在上面的例子中它引起了我的兴趣,因为我添加了一个subresolver

 Container.Kernel.Resolver.AddSubResolver( new CollectionResolver(Container.Kernel, true)); 

这将允许我注入集合…但它没有工作。 我发现因为只使用了IKernel ,它无法使用Windsor的全部function。 为什么有人想要在整个容器上使用内核? 我想如果您打算实施Windsor,请使用完整的容器。 我错了吗? 为什么?

这有历史原因。 最初Castle项目有两个容器:MicroKernel( IKernel )提供所有基本function和扩展点,Windsor IWindsorContainerIWindsorContainer的包装器,提供附加function(如XML配置,代理等)并包装MicroKernel。

后来(在v2.5中)将这些合并为单个项目/程序集,但为了避免破坏现有用户,保留了区别。

上述就是C#学习教程:为什么在IWindsorContainer上使用IKernel?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1023108.html

(0)
上一篇 2022年1月7日
下一篇 2022年1月7日

精彩推荐