public static void Init(IPlatform platform, IShinyStartup?startup = null) { var services = new ShinyServiceCollection(); services.AddSingleton(platform); services.AddLogging(builder => startup?.ConfigureLogging(builder, platform)); if (startup != null) { if (platform is IStartupInitializer startupInitializer) { startupInitializer.Initialize(startup, services); } else { startup.ConfigureServices(services, platform); } } platform.Register(services); Services = services; services.BuildShinyServiceProvider( ValidateScopes, s => startup?.CreateServiceProvider(s) !, s => container = s ); }
protected static void InitPlatform(IShinyStartup startup = null, Action <IServiceCollection> platformBuild = null) { var services = new ShinyServiceCollection(); startup?.ConfigureServices(services); platformBuild?.Invoke(services); services.TryAddSingleton <IMessageBus, MessageBus>(); services.TryAddSingleton <IRepository, FileSystemRepositoryImpl>(); services.TryAddSingleton <ISerializer, JsonNetSerializer>(); Services = services; container = startup?.CreateServiceProvider(services) ?? services.BuildServiceProvider(ValidateScopes); services.RunPostBuildActions(container); startup?.ConfigureApp(container); }