В приложении My Prism 7.1 используются 2 модуля, например плагины.
App : PrismApplication
регистрирует синглтон IDataService
, который всегда доступен
protected override void RegisterTypes(IContainerRegistry containerRegistry)
{
containerRegistry.RegisterSingleton<IDataService, DataService>();
}
, и оба плагина могут использовать его
public void OnInitialized(IContainerProvider containerProvider)
{
_dataService = containerProvider.Resolve<IDataService>();
}
Это нормально - оба модуля получают один и тот же экземпляр объекта.
Но:
Каждый из двух плагинов также должен использоватьIUsbStatus
singleton, но основное приложение НЕ знает об этом, я регистрирую его в MyModuleA : IModule
, а также в MyModuleB : IModule
:
public void RegisterTypes(IContainerRegistry containerRegistry)
{
containerRegistry.RegisterSingleton<IUsbStatus, UsbStatus>();
}
Если я использую только плагин A или плагин B, всеработает нормально, но если я использую оба плагина, то синглтон IUsbStatus
регистрируется дважды, и когда я его разрешаю, он НЕ дает мне один и тот же экземпляр объекта.
Как я могу это исправить?