ASP.NET 最小 API - 访问 IConfiguration

ser*_*ous 21 c# asp.net-core-6.0 .net-6.0 c#-10.0

是否可以在新的 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();
Run Code Online (Sandbox Code Playgroud)

Pan*_*vos 32

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

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();
Run Code Online (Sandbox Code Playgroud)

WebApplicationBuilder.Configuration属性是一个实现和 的Microsoft.Extensions.ConfigurationManager实例,因此它可用于加载配置设置或使用扩展方法,例如IConfigurationRootIConfigurationGetConnectionString

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

public IConfiguration Configuration => 
    _host.Services.GetRequiredService<IConfiguration>();
Run Code Online (Sandbox Code Playgroud)