using Aucma.Core.DoorFoam.Views; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; using System; using System.Windows; using Microsoft.Extensions.Configuration; using System.IO; using Microsoft.Extensions.Logging; using Autofac.Extensions.DependencyInjection; using Microsoft.AspNetCore.Hosting; using Admin.Core.Common; namespace Aucma.Core.DoorFoam { /// /// Interaction logic for App.xaml /// public partial class App : Application { public static IServiceProvider ServiceProvider; protected override async void OnStartup(StartupEventArgs e) { base.OnStartup(e); var host = CreateHostBuilder(e.Args).Build();//生成宿主。 ServiceProvider = host.Services; try { var loginWindow = host.Services.GetRequiredService(); if (loginWindow != null && !loginWindow.IsActive) { loginWindow.Show(); await host.StartAsync(); } else { // 处理窗口已关闭的情况 // 可以选择重新创建主窗口或者退出应用程序 Application.Current.Shutdown(); } } catch (Exception ex) { Application.Current.Shutdown(); } } /// /// CreateHostBuilder /// /// /// public static IHostBuilder CreateHostBuilder(string[] args) { //初始化默认主机Builder var hostBuilder = Host.CreateDefaultBuilder(args) //Autofac服务工厂 .UseServiceProviderFactory(new AutofacServiceProviderFactory()) .ConfigureWebHostDefaults(webBuilder => { webBuilder.UseStartup(); }) .ConfigureLogging((hostingContext, builder) => { //清楚控制台log日志 builder.ClearProviders(); // 1.过滤掉系统默认的一些日志 builder.AddFilter("System", LogLevel.Error); builder.AddFilter("Microsoft", LogLevel.Error); // 默认log4net.confg builder.AddLog4Net(Path.Combine(Directory.GetCurrentDirectory(), "Log4net.config")); }); return hostBuilder; } } }