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;
等....