我看到内核使用了很多但我不确定它的意思。你能举个例子吗?
答案 0 :(得分:2)
内核是容器本身。它在Windsor(实际上是MicroKernel)和Ninject中称为“内核”,因为它仅提供核心注入功能,依赖于包装器(在MicroKernel的情况下,它是WindsorContainer)或模块/扩展方法(在Ninject的情况)提供便利功能(例如,WindsorContainer提供XML配置解析)
答案 1 :(得分:2)
Ninject和其他依赖注入器中的内核是应用程序的核心。它是其他模块的容器。
模块代表应用程序的独立部分。您可以根据自己的需要在代码库结构中自由组织它们。然后通过构造函数将这些模块加载到内核中。 See this page举了一个例子。
内核对象也是负责解析依赖关系和创建新对象的对象。
例如在C#/ .NET的Ninject中,你可以使用内核将接口绑定到它的实现:
IKernel ninjectKernel = new StandardKernel();
ninjectKernel.Bind<IMyFoo>().To<MyFoo>();
然后当您按如下方式创建对象时......
IMyFoo myFoo = ninjectKernel.Get<IMyFoo>;
...由于您刚刚指定的绑定,内核将自动返回类型为MyFoo
的实例。
This page更详细地介绍了内核和模块如何组合在一起,以供进一步阅读。来自Ninject的This page也可以提供帮助。