/// <summary> /// 配置应用启动 /// </summary> /// <param name="builder"></param> public void Configure(IWebHostBuilder builder) { // 自动装载配置 builder.ConfigureAppConfiguration((hostingContext, config) => { // 存储环境对象 InternalApp.HostEnvironment = InternalApp.WebHostEnvironment = hostingContext.HostingEnvironment; // 加载配置 InternalApp.AddConfigureFiles(config, InternalApp.HostEnvironment); }); // 自动注入 AddApp() 服务 builder.ConfigureServices(services => { // 添加主机启动停止监听 services.AddHostedService <AppHostedService>(); // 注册 Startup 过滤器 services.AddTransient <IStartupFilter, StartupFilter>(); // 添加全局配置和存储服务提供器 InternalApp.InternalServices = services; // 初始化应用服务 services.AddApp(); }); }
/// <summary> /// 创建初始服务集合 /// </summary> /// <param name="configureLogging">配置日志</param> /// <returns></returns> public static IServiceCollection Create(Action <ILoggingBuilder> configureLogging = default) { // 监听全局异常 AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException; // 创建配置构建器 var configurationBuilder = new ConfigurationBuilder(); // 加载配置 InternalApp.AddJsonFiles(configurationBuilder, default); // 存储配置对象 var configuration = InternalApp.Configuration = configurationBuilder.Build(); // 创建服务对象和存储服务提供器 var services = InternalApp.InternalServices = new ServiceCollection(); // 添加默认控制台日志处理程序 services.AddLogging(loggingBuilder => { loggingBuilder.AddConfiguration(configuration.GetSection("Logging")); loggingBuilder.AddConsole(); // 将日志输出到控制台 configureLogging?.Invoke(loggingBuilder); }); // 初始化应用服务 services.AddApp(); return(services); }
/// <summary> /// 配置应用启动 /// </summary> /// <param name="builder"></param> public void Configure(IWebHostBuilder builder) { InternalApp.ConfigureApplication(builder); }