我如何在ninject 2中使用普通服务定位器
题
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的使用可疑。在相信大多数情况下,可以通过适当的设计来删除这种常见界面。
不隶属于 StackOverflow