如何摆脱警告“从应用程序代码中调用“BuildServiceProvider”...”

Joh*_*ore 5 asp.net-core asp.net-core-3.1

我有以下显示警告的代码...

从应用程序代码调用“BuildServiceProvider”会导致创建单例服务的附加副本。考虑替代方案,例如依赖注入服务作为“配置”的参数。

在此输入图像描述

这是一个简短的片段,ConfigureServices显示了如何使用它。基本上我需要解析 AdminDbContext 以将其传递给初始化例程。

    public void ConfigureServices(IServiceCollection services)
    {
        services.AddDbContext<AdminDbContext>(o => o.UseSqlServer("config settings here"));

        CustomerConnectionStrings.Instance.Initialize(services.BuildServiceProvider().GetService<AdminDbContext>());
    }
Run Code Online (Sandbox Code Playgroud)

我需要做什么才能消除这个警告?

我已经看到其他帖子展示了如何执行此操作,但我没有为我的特定用例建立连接。

Nko*_*osi 3

虽然我相信这可能是一个XY 问题

我建议遵循警告中的建议

考虑替代方案,例如依赖注入服务作为“配置”的参数。

//...

public void ConfigureServices(IServiceCollection services) {

    services.AddDbContext<AdminDbContext>(o => o.UseSqlServer("config settings here"));

    //...
}

public void Configure(IApplicationBuilder app, IWebHostEnvironment env, AdminDbContext adminDb) {

    CustomerConnectionStrings.Instance.Initialize(adminDb);

    //...
}
Run Code Online (Sandbox Code Playgroud)