gpt4 book ai didi

.net - 如何将我的 IServiceLocator 实现设置为 ServiceLocator.Current?

转载 作者:行者123 更新时间:2023-12-01 01:34:56 25 4
gpt4 key购买 nike

我正在努力在 Prism 框架中用 Ninject 替换 Unity。这需要我实现一个 Ninject 特定的 IServiceLocator。据我了解,我可以继承 ServiceLocatorImplBase ,这就是我所做的。现在如何将其设置为当前 ServiceLocator?我需要这个才能拥有例如RegionManager 在创建区域时获取它,并调用:

IServiceLocator locator = ServiceLocator.Current;

这是一个静态属性,但它没有 setter 。有一个功能:
void ServiceLocator.SetLocatorProvider(ServiceLocatorProvider newProvider);

..但参数与我的 ServiceLocatorImplBase 不匹配。有任何想法吗?

最佳答案

ServiceLocatorProvider是代表,你可以这样做:

var container = NInjectServiceLocator(); // your ServiceLocatorImplBase impl.

ServiceLocator.SetLocatorProvider(() => container);

关于.net - 如何将我的 IServiceLocator 实现设置为 ServiceLocator.Current?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2621843/

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