using Microsoft.Extensions.DependencyInjection; using System.Windows; using PersonalToolBox.Services; using PersonalToolBox.Views; namespace PersonalToolBox; /// /// WPF 应用程序入口,负责依赖注入容器初始化和启动主窗口 /// public partial class App : Application { public static IServiceProvider Services { get; private set; } = null!; protected override void OnStartup(StartupEventArgs e) { base.OnStartup(e); var services = new ServiceCollection(); ConfigureServices(services); Services = services.BuildServiceProvider(); // 启动时加载配置文件(含路径验证与容错) var dataService = Services.GetRequiredService(); dataService.Load(); var mainWindow = Services.GetRequiredService(); mainWindow.Show(); } /// /// 注册所有服务到 DI 容器(单例模式) /// private static void ConfigureServices(IServiceCollection services) { // 日志服务 services.AddSingleton(); // 数据持久化服务 services.AddSingleton(); // 主窗口 services.AddSingleton(); } }