.net core DI 服务集合中的"ServiceLocationProvider must be set"



我正在从MVVMLight依赖注入SimpleIoc迁移到WPF应用程序中的Microsoft.Extensions.Dependency dll中的ServiceCollection。

在这个

我正在尝试替换这条线ServicesLocator.SetLocatorProvider(() =比;SimpleIoc.Default)。

In my page

IServiceCollection Service=new ServiceCollection();

我想获得一个具有唯一键的实例,如下所示:

ServiceLocator.Current.GetInstance (Guid.NewGuid.Tostring())。这是在SimpleIoc工作,但迁移后不工作。

我尝试了多种方法,比如

ServicesLocator.SetLocatorProvider(服务().BuildServiceProvider ())

要获取实例,没有键(Guid),我们有方法,但无法找到与键。

帮忙吗?

我已经修复了这个问题。

我使用microsoft . extensions . dependencyainjectdll .

之前我们使用

来获得唯一实例
ServiceLocator.Current.
GetInstance<IService>(Guid.NewGuid().ToString())

我用下面的代码来替换它:

IServiceCollection _service=new ServiceCollection();
_service.addscoped<IService, Service>();
Ioc.Default.ConfigureService(_service.BuildServiceProvider());

我特别喜欢下面的页面,以获得唯一的实例:

Ioc.Default.CreateScope().ServiceProvider.GetService<IService>();

最新更新