如何在 Ninject 2 中使用公共服务定位器
Ninject 2 中的更改 表示 Ninject 支持通用服务定位器,但是我该如何使用它呢?我没有找到任何手册或样本。
Changes in Ninject 2 say that Ninject support Common Service Locator, but how do I use it? I don't find any manual or sample.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
Ninject2 下载包含一个
CommonServiceLocator.NinjectAdapter.dll
(位于 zip 文件的“extensions”文件夹中)。将此 dll 和Ninject.dll
添加到您的项目中。在应用程序的启动路径中(配置 Ninject 内核后),您可以使用以下代码:
请注意,公共服务定位器 (CSL) 是一个库,它提供 IoC 容器的抽象并包含静态外观(实现服务定位器模式)。它是一个通用接口,开发人员可以使用它来防止依赖于特定的 IoC 实现。 CSL 对于框架开发人员特别有用。应用程序开发人员最好使用依赖注入 (DI) 模式。当正确使用 DI 时,应用程序中无需使用 CSL。虽然 CSL 更适合框架开发,但即使在框架开发中,我也发现 CSL 的使用值得怀疑。相信大多数时候可以通过适当的设计来消除这种通用接口的使用。
The Ninject2 download contains a
CommonServiceLocator.NinjectAdapter.dll
(in the 'extensions' folder of the zip file). Add this dll and theNinject.dll
to your project.In the startup path of your application (after configuring the Ninject kernel), you can use the following code:
Please note that the Common Service Locator (CSL) is a library that provides an abstraction over IoC containers and contains a static facade (implementing the Service Locator pattern). It is a common interface that developers can use to prevent depending on a specific IoC implementation. The CSL is especially useful for framework developers. Application developers are better of using the dependency injection (DI) pattern. When DI is used correctly, there is no need for the use of the CSL in an application. While the CSL is more suited for framework development, even there I find the use of the CSL questionable. In believe that most of the time the use of such common interface can be removed by having a proper design.