ASP.NET CORE

Configuración Posterior en ASP.NET Core Mediante el Patrón de Opciones

El proceso de configuración posterior de las opciones se ejecuta una vez realizada toda la configuración de IConfigureOptions, y puede resultar útil en escenarios en los que es necesario invalidar la configuración original.

Este proceso se puede realizar mediante dos métodos:

Considere el siguiente archivo appsettings.json:

appsettings.json
{
   "MongoDbSettings": { 
      "Host": "http://localhost/",
      "Port": 27017
   }
}

El siguiente código muestra el uso de PostConfigure con la clase de opciones MongoDbSettings:

Program.cs
using Microsoft.Extensions.Options;

var builder = WebApplication.CreateBuilder(args);

builder.Services.AddOptions<MongoDbSettings>()
                .BindConfiguration(nameof(MongoDbSettings))
                .ValidateDataAnnotations()
                .ValidateOnStart();

builder.Services.AddSingleton(serviceType =>
                              serviceType.GetRequiredService<IOptions<MongoDbSettings>>().Value);

builder.Services.PostConfigure<MongoDbSettings>(mongoDbSettings =>
{
   if (!mongoDbSettings.Host?.StartsWith("https://") ?? false)
   {
        mongoDbSettings.Host = mongoDbSettings.Host?.Replace("http://", "https://");
   }
});

builder.Services.ConfigureHttpJsonOptions(options =>
{
    options.SerializerOptions.WriteIndented = true;
});

var app = builder.Build();

app.MapGet("/", (MongoDbSettings options) => options);
app.Run();

El código C# anterior:

Artículos Relacionados

Recursos Adicionales