SuperAPI AI 工具集

configuring-avalonia-dependency-injection

通用与其它

查看项目

更新于 10-15 20:12

技能介绍

用途:在 AvaloniaUI 应用中按与 WPF 相同的 GenericHost 模式配置依赖注入(DI)与 IoC 容器,用于搭建 DI 容器、注册服务和实现控制反转。

主要能力:提供 .NET 9 AvaloniaUI 项目示例结构,将 Avalonia 应用项目与 UI 框架无关的 ViewModel 类库分离。应用项目包含 Views(MainWindow.axaml 及其代码隐藏)、App.axaml、App.axaml.cs、Program.cs、GlobalUsings.cs 和 csproj;ViewModel 类库包含 MainViewModel.cs、GlobalUsings.cs 和 csproj。

使用方式:在 App.axaml.cs 中创建 GenericHost 并注册服务。示例使用 Host.CreateDefaultBuilder().ConfigureServices(...) 注册服务与视图模型,例如 services.AddSingleton<IUserRepository, UserRepository>()、services.AddSingleton<IUserService, UserService>()、services.AddTransient<IDialogService, DialogService>()、services.AddTransient<MainViewModel>()、services.AddSingleton<MainWindow>(),随后 .Build()。在 OnFrameworkInitializationCompleted 中,当 ApplicationLifetime 为 IClassicDesktopStyleApplicationLifetime 时,通过 _host.Services.GetRequiredService<MainWindow>() 设置 desktop.MainWindow。Initialize 中调用 AvaloniaXamlLoader.Load(this)。

适用场景:AvaloniaUI 桌面应用的启动配置、服务注册与视图/视图模型解析。

限制:资料仅给出上述示例与结构,未提供其他平台、收费、版本兼容性或完整安装步骤等信息。