Este patrón permite usar objetos tipados para manejar configuraciones en API. La idea es organizar mejor el uso de configuraciones. En primer lugar definimos una clase contenedora que coincidirá con la configuración que definamos en appsetting y definimos los valores teniendo en cuenta anidamiento
{
«SmtpSettings»: {
«Host»: «smtp.example.com»,
«Port»: 587,
«Username»: «noreply@example.com»,
«Password»: «»,
«EnableSsl»: true
}
}
en segundo lugar registramos el servicio haciendo:
builder.Services.Configure(builder.Configuration.GetSection(«SmtpSettings»));
o una opcion mas segura para validar
builder.Services
.AddOptions()
.Bind(builder.Configuration.GetSection(«SmtpSettings»))
.ValidateDataAnnotations()
.ValidateOnStart();
Para su uso inyectamos el servicio IOptions en nuestros constructores
public class EmailService(IOptions options)
{
private readonly SmtpSettings _settings = options.Value;
public void SendEmail()
{
}
}

Deja una respuesta