gpt4 book ai didi

dependency-injection - 如何在 Ninject 2 中使用公共(public)服务定位器

转载 作者:行者123 更新时间:2023-12-03 21:20:28 28 4
gpt4 key购买 nike

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);

请注意,Common Service Locator (CSL) 是一个库,它提供对 IoC 容器的抽象,并包含一个静态外观(实现服务定位器模式)。它是一个通用接口(interface),开发人员可以使用它来防止依赖于特定的 IoC 实现。 CSL 对于框架开发人员特别有用。应用程序开发人员更适合使用依赖注入(inject) (DI) 模式。如果正确使用 DI,则无需在应用程序中使用 CSL。虽然 CSL 更适合框架开发,但我发现 CSL 的使用还是有问题的。相信大多数时候可以通过适当的设计来消除对此类通用接口(interface)的使用。

关于dependency-injection - 如何在 Ninject 2 中使用公共(public)服务定位器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3750624/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com