Files
personal-toolbox/PersonalToolBox/App.xaml.cs
home-PC 752f09a7e4 Phase 1: data models and local storage service
- Add Models: Category, ToolItem (IsValid runtime-only, not stored), AppConfig

- Add Services: IDataService + JsonDataService (JSON load/save)

- Path validation on Load(): File.Exists check, logs warning for missing paths

- Startup: auto-calls dataService.Load() to load config
2026-05-09 20:34:36 +08:00

46 lines
1.3 KiB
C#

using Microsoft.Extensions.DependencyInjection;
using System.Windows;
using PersonalToolBox.Services;
using PersonalToolBox.Views;
namespace PersonalToolBox;
/// <summary>
/// WPF 应用程序入口,负责依赖注入容器初始化和启动主窗口
/// </summary>
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<IDataService>();
dataService.Load();
var mainWindow = Services.GetRequiredService<MainWindow>();
mainWindow.Show();
}
/// <summary>
/// 注册所有服务到 DI 容器(单例模式)
/// </summary>
private static void ConfigureServices(IServiceCollection services)
{
// 日志服务
services.AddSingleton<ILogService, LogService>();
// 数据持久化服务
services.AddSingleton<IDataService, JsonDataService>();
// 主窗口
services.AddSingleton<MainWindow>();
}
}