导航

08-006 Hosting 之 HostingService

Posted on 2015-04-07 12:43  DotNet1010  阅读(203)  评论(0)    收藏  举报

核心代码是 Create方法:

  public static IServiceCollection Create(IServiceProvider fallbackServices, IConfiguration configuration = null)
        {
            configuration = configuration ?? new Configuration();
            var services = Import(fallbackServices); //外部的服务导入
            services.AddHosting(configuration);
			/*  AddHosting SourceCode
			services.TryAdd(describer.Transient<IHostingEngine, HostingEngine>());
            services.TryAdd(describer.Transient<IServerManager, ServerManager>());

            services.TryAdd(describer.Transient<IStartupManager, StartupManager>());
            services.TryAdd(describer.Transient<IStartupLoaderProvider, StartupLoaderProvider>());

            services.TryAdd(describer.Transient<IApplicationBuilderFactory, ApplicationBuilderFactory>());
            services.TryAdd(describer.Transient<IHttpContextFactory, HttpContextFactory>());

            services.TryAdd(describer.Instance<IApplicationLifetime>(new ApplicationLifetime()));

            services.AddTypeActivator(configuration);
            services.AddLogging(configuration);
            services.TryAdd(describer.Singleton<IHostingEnvironment, HostingEnvironment>());
            services.TryAdd(describer.Singleton<IHttpContextAccessor, HttpContextAccessor>());
            services.AddInstance<IConfigureHostingEnvironment>(new ConfigureHostingEnvironment(configuration));
	        */
			services.AddSingleton<IServiceManifest>(sp => new HostingManifest(fallbackServices));
            return services;
        }