Итак, вот соответствующие фрагменты кода:
AppHost/appsettings.json:< /p>
Код: Выделить всё
{
"AppConfig": {
"One": "First Default",
"Two": "Second Default"
}
}
Код: Выделить всё
{
"AppConfig": {
"One": "Frist is Overridden"
}
}
Код: Выделить всё
public class AppConfig
{
public string? One { get; set; }
public string? Two { get; set; }
}
Код: Выделить всё
public static TBuilder AddCustomConfiguration(this TBuilder builder) where TBuilder : IHostApplicationBuilder
{
builder.Services.AddSingleton(x => x.GetRequiredService().GetSection("AppConfig").Get() ?? throw new InvalidOperationException("AppConfig needs to be configured"));
return builder;
}
Код: Выделить всё
// ...
var builder = WebApplication.CreateBuilder(args);
// Add Custom Config:
builder.AddCustomConfiguration();
builder.Services.AddHostedService();
// ...
Код: Выделить всё
public class SampleService(AppConfig appConfig, ILogger logger) : BackgroundService
{
protected override Task ExecuteAsync(CancellationToken stoppingToken)
{
logger.LogInformation("AppConfig.One: {One}", appConfig.One);
logger.LogInformation("AppConfig.Two: {Two}", appConfig.Two);
return Task.CompletedTask;
}
}

"Два" равно нулю. Я хочу настроить значения по умолчанию в AppHost/appsettings.json.
Каков правильный подход к конфигурациям «по умолчанию» в .NET Aspire?
Я создал образец приложения: https://github.com/Lyra1337/net-aspire- ... figuration
Подробнее здесь: https://stackoverflow.com/questions/792 ... e-services
Мобильная версия