72 lines
2.1 KiB
C#
72 lines
2.1 KiB
C#
using AiSportsMicrospaceDB.DBContext;
|
|
using Common;
|
|
using Microsoft.EntityFrameworkCore;
|
|
using Microsoft.Extensions.Configuration;
|
|
using Microsoft.Extensions.DependencyInjection;
|
|
using Microsoft.Extensions.Hosting;
|
|
using Microsoft.ML.Runtime;
|
|
using System.Configuration;
|
|
using System.Data;
|
|
using System.IO;
|
|
using System.Windows;
|
|
using Wpf_AiSportsMicrospace.Views;
|
|
using Yztob.AiSports.Common;
|
|
using Yztob.AiSports.Common.Implement;
|
|
|
|
|
|
namespace Wpf_AiSportsMicrospace;
|
|
|
|
/// <summary>
|
|
/// Interaction logic for App.xaml
|
|
/// </summary>
|
|
public partial class App : Application
|
|
{
|
|
public static Microsoft.Extensions.Hosting.IHost AppHost { get; private set; }
|
|
|
|
protected override void OnStartup(StartupEventArgs e)
|
|
{
|
|
base.OnStartup(e);
|
|
|
|
#if DEBUG
|
|
DebugTracker.Enabled = true;
|
|
DebugTracker.Channels.Add(new DiagnosisDebugTrackChannel());
|
|
#endif
|
|
|
|
// 1. 创建 Host
|
|
AppHost = Host.CreateDefaultBuilder()
|
|
.ConfigureAppConfiguration((context, config) =>
|
|
{
|
|
config.SetBasePath(Directory.GetCurrentDirectory());
|
|
config.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true);
|
|
})
|
|
.ConfigureServices((context, services) =>
|
|
{
|
|
// 读取数据库连接
|
|
var connectionString = context.Configuration.GetConnectionString("DefaultConnection");
|
|
services.AddDbContext<AppDbContext>(options =>
|
|
options.UseSqlServer(connectionString));
|
|
|
|
// 注入 MainWindow
|
|
services.AddSingleton<Main>();
|
|
})
|
|
.Build();
|
|
|
|
// 2. 启动 Host
|
|
AppHost.Start();
|
|
|
|
// 3. 初始化全局配置
|
|
var configuration = AppHost.Services.GetRequiredService<IConfiguration>();
|
|
AppSettings.Init(configuration); // 这时 AppHost 已经有值了
|
|
|
|
// 4. 用 DI 创建窗口
|
|
var mainWin = AppHost.Services.GetRequiredService<Main>();
|
|
Current.MainWindow = mainWin;
|
|
mainWin.Show();
|
|
|
|
var newPage = new Home();
|
|
mainWin.SwitchPage(newPage, true);
|
|
}
|
|
|
|
}
|
|
|