ASP.NET 最小 API - 访问 IConfiguration

ASP.NET Minimal API - Access IConfiguration

是否可以访问新的 ASP.NET Minimal API 中的 IConfiguration?我看不到这样做的可能性。

using Microsoft.AspNetCore.Components;
using MudBlazor.Services;

var builder = WebApplication.CreateBuilder(args);

// Add services to the container.
builder.Services.AddRazorPages();
...

builder.Services.AddMyServiceWithConfiguration(XXXX.Configuration);

var app = builder.Build();

....

app.Run();

您可以使用 builder.Configuration。在这个example中,在实际代码的第二行检索连接字符串:

using System.ComponentModel.DataAnnotations;
using Microsoft.EntityFrameworkCore;

var builder = WebApplication.CreateBuilder(args);

var connectionString = builder.Configuration.GetConnectionString("TodoDb") 
                       ?? "Data Source=todos.db";


builder.Services.AddSqlite<TodoDb>(connectionString)
                .AddDatabaseDeveloperPageExceptionFilter();

实现IConfigurationRootIConfigurationWebApplicationBuilder.Configuration property is a Microsoft.Extensions.ConfigurationManager实例,因此它可用于加载配置设置或使用GetConnectionString

等扩展方法

构建应用程序后,可以通过 WebApplication.Configuration 属性 访问配置。这只是对 Services.GetRequiredService<IConfiguration>():

的调用
public IConfiguration Configuration => 
    _host.Services.GetRequiredService<IConfiguration>();

您可以访问 ConfigurationManager (builder.Configuration),它是 IConfigurationBuilder、IConfigurationRoot 和 IConfiguration

的实现

构建应用程序后 (builder.Build()),您可以使用 app.Services.GetRequiredService<IConfiguration>()