ASP.NET 最小 API - 访问 IConfiguration

Posted

技术标签:

【中文标题】ASP.NET 最小 API - 访问 IConfiguration【英文标题】:ASP.NET Minimal API - Access IConfiguration 【发布时间】:2021-09-07 15:16:34 【问题描述】:

是否可以在新的 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();

【问题讨论】:

【参考方案1】:

您可以使用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();

WebApplicationBuilder.Configuration 属性是实现IConfigurationRootIConfiguration 的Microsoft.Extensions.ConfigurationManager 实例,因此可用于加载配置设置或使用GetConnectionString 等扩展方法

一旦构建了应用程序,就可以通过WebApplication.Configuration 属性访问配置。这只是给Services.GetRequiredService&lt;IConfiguration&gt;()的一个电话:

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

【讨论】:

以上是关于ASP.NET 最小 API - 访问 IConfiguration的主要内容,如果未能解决你的问题,请参考以下文章

如何使用具有最小 API .Net 6 的 Asp.net core Identity 运行迁移(第一次迁移)

创建API服务最小只要4行代码!!!尝新体验ASP.NET Core 6预览版本中的最小Web API(minimal APIS)新特性

ASP.NET Core 6 Minimal API

asp.net关于如何准许api跨域访问

无法从 Internet 访问我的 Asp.Net Api

编写可通过 asp.net 身份用户和不记名令牌访问的单个 API