public static void RegisterPrismCoreServices(this IServiceCollection services) { if (!services.IsRegistered <IAggregateLogger>()) { services.AddSingleton <AggregateLogger>(p => { var logger = new AggregateLogger(); logger.AddLoggers(p.GetService <IEnumerable <IAggregableLogger> >()); return(logger); }); services.AddTransient <IAggregateLogger>(p => p.GetRequiredService <AggregateLogger>()); services.AddTransient <ILogger>(p => p.GetRequiredService <AggregateLogger>()); services.AddTransient <IAnalyticsService>(p => p.GetRequiredService <AggregateLogger>()); services.AddTransient <ICrashesService>(p => p.GetRequiredService <AggregateLogger>()); } services.RegisterSingletonIfNotRegistered <IEventAggregator, EventAggregator>(); services.RegisterSingletonIfNotRegistered <IModuleCatalog, ModuleCatalog>(); services.RegisterSingletonIfNotRegistered <IModuleManager, ModuleManager>(); services.RegisterSingletonIfNotRegistered <IModuleInitializer, ModuleInitializer>(); }