Привет, когда я смотрю на реализацию PrismApplicationBase
Я обнаружил следующий фрагмент кода
/// <summary>
/// Registers all types that are required by Prism to function with the container.
/// </summary>
/// <param name="containerRegistry"></param>
protected virtual void RegisterRequiredTypes(IContainerRegistry containerRegistry)
{
containerRegistry.RegisterInstance<IContainerExtension>(_containerExtension);
containerRegistry.RegisterSingleton<ILoggerFacade, EmptyLogger>();
containerRegistry.RegisterSingleton<IApplicationProvider, ApplicationProvider>();
containerRegistry.RegisterSingleton<IApplicationStore, ApplicationStore>();
containerRegistry.RegisterSingleton<IEventAggregator, EventAggregator>();
containerRegistry.RegisterSingleton<IDependencyService, DependencyService>();
containerRegistry.RegisterSingleton<IPageDialogService, PageDialogService>();
containerRegistry.RegisterSingleton<IDeviceService, DeviceService>();
containerRegistry.RegisterSingleton<IPageBehaviorFactory, PageBehaviorFactory>();
containerRegistry.RegisterSingleton<IModuleCatalog, ModuleCatalog>();
containerRegistry.RegisterSingleton<IModuleManager, ModuleManager>();
containerRegistry.RegisterSingleton<IModuleInitializer, ModuleInitializer>();
containerRegistry.Register<INavigationService, PageNavigationService>(NavigationServiceName);
}
, мы видим, что последняя регистрация для службы навигации - НЕ singleton.
Итак, у меня два вопроса:
- Почему регистрация на
INavigationService
не похожа на другие сервисы? - Почему мы присваиваем имя дляэто (то есть
NavigationServiceName
)