using System.Configuration; using System.Data; using System.Windows; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Logging; using NLog; using NLog.Extensions.Logging; using PMSWPF.Data; using PMSWPF.Data.Entities; using PMSWPF.Data.Repositories; using PMSWPF.Services; using PMSWPF.ViewModels; using PMSWPF.Views; namespace PMSWPF { /// /// Interaction logic for App.xaml /// public partial class App : Application { public new static App Current => (App)Application.Current; public IServiceProvider Services { get; } public App() { var container = new ServiceCollection(); var nlog = LogManager.Setup().LoadConfigurationFromFile("Config/nlog.config").GetCurrentClassLogger(); container.AddLogging(loggingBuilder => { loggingBuilder.ClearProviders(); loggingBuilder.SetMinimumLevel(Microsoft.Extensions.Logging.LogLevel.Trace); loggingBuilder.AddNLog(); }); container.AddSingleton(); container.AddSingleton(); container.AddSingleton(); container.AddSingleton(); container.AddSingleton(); container.AddSingleton(); container.AddSingleton(); container.AddSingleton(); container.AddSingleton(); container.AddSingleton(); container.AddSingleton(); container.AddSingleton(); container.AddSingleton(); container.AddSingleton(); Services = container.BuildServiceProvider(); // 启动服务 Services.GetRequiredService(); } protected override void OnStartup(StartupEventArgs e) { base.OnStartup(e); InitDB(); MainWindow = Services.GetRequiredService(); MainWindow.Show(); } private void InitDB() { var _db = DbContext.GetInstance(); _db.DbMaintenance.CreateDatabase(); _db.CodeFirst.InitTables(); _db.CodeFirst.InitTables(); _db.CodeFirst.InitTables(); _db.CodeFirst.InitTables(); _db.CodeFirst.InitTables(); _db.CodeFirst.InitTables(); _db.CodeFirst.InitTables(); _db.CodeFirst.InitTables(); } } }