我正在从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>();