小编Mil*_*loš的帖子

Program.cs 中的 MAUI 依赖注入服务解析

MAUI 的依赖注入设置类似于 ASP.NET Core 在 Startup.cs 类中的设置。默认情况下,此设置在MauiProgram.cs文件中。

我的问题是:服务注册后如何获取此文件中的服务实例?我想,一种解决方案如下,但是如果这些服务的构造函数在一段时间内发生变化,我也必须编辑此代码:

    var keyValueStore = new PreferencesKeyValueStore();
    var accountService = new AccountService(keyValueStore);
    var profileService = new ProfileService(keyValueStore);
    
    builder.Services.AddSingleton<IKeyValueStore>(keyValueStore);
    builder.Services.AddSingleton<IAccountService>(accountService);
    builder.Services.AddSingleton<IProfileService>(profileService);

    //Here now I can use accountService and profileService to do something
Run Code Online (Sandbox Code Playgroud)

我找不到更优雅的解决方案来从 DI 容器返回服务实例。就像是:

    builder.Services.AddSingleton<IKeyValueStore, PreferencesKeyValueStore>();
    builder.Services.AddSingleton<IAccountService, AccountService>;
    builder.Services.AddSingleton<IProfileService, ProfileService>();
    
    //Now I can't perform something like: var accountService = diContainer.GetInstance<IAccountService>(); or similar.
Run Code Online (Sandbox Code Playgroud)

我不知道如何访问 di 容器并要求它向我提供注册实例。

c# dependency-injection asp.net-core maui

3
推荐指数
1
解决办法
2262
查看次数

标签 统计

asp.net-core ×1

c# ×1

dependency-injection ×1

maui ×1