コード例 #1
0
ファイル: ShinyHost.cs プロジェクト: gcardinale/shiny
        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
                );
        }
コード例 #2
0
        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);
        }