public static void Init(IShinyStartup startup = null, IShinyModule platformModule = null) => InitPlatform(startup, services => { services.TryAddSingleton <IEnvironment, EnvironmentImpl>(); services.TryAddSingleton <IConnectivity, ConnectivityImpl>(); services.TryAddSingleton <IPowerManager, PowerManagerImpl>(); services.TryAddSingleton <IFileSystem, FileSystemImpl>(); services.TryAddSingleton <ISettings, SettingsImpl>(); services.TryAddSingleton <UwpContext>(); services.TryAddSingleton <IJobManager, JobManager>(); services.TryAddSingleton <IBackgroundTaskProcessor, JobBackgroundTaskProcessor>(); if (platformModule != null) { services.RegisterModule(platformModule); } Dehydrate(STARTUP_KEY, startup); Dehydrate(MODULE_KEY, platformModule); });
/// <summary> /// Register a module (like a category) of services /// </summary> /// <param name="services"></param> /// <param name="module"></param> public static void RegisterModule(this IServiceCollection services, IShinyModule module) { module.Register(services); services.RegisterPostBuildAction(module.OnContainerReady); }
public InternalShinyStartup(IShinyModule module) => this.module = module;