Asp.net core 6 Program.csファイルでappsettings.jsonを使用する方法 質問する

Asp.net core 6 Program.csファイルでappsettings.jsonを使用する方法 質問する

Asp.net core v6 アプリケーションの Program.cs ファイルで appsettings.json にアクセスしようとしていますが、このバージョンの .Net では Startup クラスと Program クラスが結合され、using および another ステートメントが簡略化されて Program.cs から削除されています。このような状況では、IConfiguration にアクセスする方法や、たとえば依存性注入を使用する方法を教えてください。

コード

これはAsp.net 6が作成したデフォルトのProgram.csです。

var builder = WebApplication.CreateBuilder(args);
// Add services to the container.
builder.Services.AddControllers();
builder.Services.AddStackExchangeRedisCache(options =>
{
    options.Configuration = "localhost:6379";
});

builder.Services.AddSwaggerGen(c =>
{
    c.SwaggerDoc("v1", new() { Title = "BasketAPI", Version = "v1" });
});
var app = builder.Build();
// Configure the HTTP request pipeline.
if (app.Environment.IsDevelopment())
{
    app.UseSwagger();
    app.UseSwaggerUI(c => c.SwaggerEndpoint("/swagger/v1/swagger.json", "BasketAPI v1"));
}
app.UseHttpsRedirection();
app.UseAuthorization();
app.MapControllers();
app.Run();

たとえば、次の行では、ハードタイプされた接続文字列の代わりに appsettings.json を使用します。

options.Configuration = "localhost:6379";

ベストアンサー1

appsettingsにある場合

"settings": {
    "url": "myurl",
    "username": "guest",
    "password": "guest"
  }

そしてクラスがあります

public class Settings
    {
        public string Url { get; set; }
        public string Username { get; set; }
        public string Password { get; set; }
    }

私たちも使うことができます

var settings = builder.Configuration.GetSection("Settings").Get<Settings>();

var url = settings.Url;

等....

おすすめ記事