Changes in Ninject 2Ninject支持Common Service Locator,但是我该如何使用呢?我找不到任何手册或样本。

最佳答案

Ninject2下载包含一个CommonServiceLocator.NinjectAdapter.dll(在zip文件的“扩展名”文件夹中)。将此dll和Ninject.dll添加到您的项目。

在应用程序的启动路径中(配置Ninject内核之后),可以使用以下代码:

IKernel ninject = ...;

var locator = new NinjectServiceLocator(ninject);

ServiceLocator.SetLocatorProvider(() => locator);


请注意,通用服务定位器(CSL)是一个库,提供了IoC容器的抽象,并包含静态外观(实现服务定位器模式)。它是开发人员可以用来阻止的通用接口,具体取决于特定的IoC实现。 CSL对框架开发人员特别有用。应用程序开发人员最好使用依赖项注入(DI)模式。如果正确使用DI,则无需在应用程序中使用CSL。尽管CSL更适合于框架开发,但即使在那儿,我也发现CSL的使用存在疑问。相信在大多数情况下,可以通过适当的设计来消除对此类公共接口的使用。

关于dependency-injection - 我如何在Ninject 2中使用Common Service Locator,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3750624/

10-12 05:08