Exemplo n.º 1
0
        /// <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();
            });
        }
Exemplo n.º 2
0
        /// <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);
        }
Exemplo n.º 3
0
 /// <summary>
 /// 配置应用启动
 /// </summary>
 /// <param name="builder"></param>
 public void Configure(IWebHostBuilder builder)
 {
     InternalApp.ConfigureApplication(builder);
 }