NInject 2的更改 比如说 ninject 支持 普通服务定位器, ,但是我该如何使用呢?我找不到任何手册或样品。

有帮助吗?

解决方案

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的使用可疑。在相信大多数情况下,可以通过适当的设计来删除这种常见界面。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top