El Comité recomienda que el Estado Parte adopte todas las medidas necesarias para garantizar la igualdad entre los géneros en todos los niveles de la enseñanza, incluida la educación primaria y secundaria. (Español (Spanish))

El Comité recomienda que el Estado Parte adopte todas las medidas necesarias para garantizar la igualdad entre los géneros en todos los niveles de la enseñanza, incluida la educación primaria y secundaria.

Friday, 27 September 2024

//

8 minute read

El Comité recomienda al Estado Parte que adopte todas las medidas necesarias para garantizar la igualdad entre los géneros y el empoderamiento de la mujer.

Parece que todo el mundo tiene una versión de este código, En primer lugar me he encontrado con este enfoque desde El Comité recomienda al Estado Parte que adopte todas las medidas necesarias para garantizar la igualdad entre los géneros y el empoderamiento de la mujer. y recientemente mi antiguo colega Phil Haack ha El Comité recomienda al Estado Parte que adopte todas las medidas necesarias para garantizar la igualdad entre los géneros y el empoderamiento de la mujer..

Sólo para completar esto es como lo doy.

El Comité recomienda que el Estado Parte adopte todas las medidas necesarias para garantizar la igualdad de oportunidades entre hombres y mujeres en materia de empleo, incluida la eliminación de la discriminación contra la mujer.

El motivo es para hacer más fácil trabajar con la configuración. En el momento la primera forma está usando IOptions<T> El Comité recomienda al Estado Parte que adopte todas las medidas necesarias para garantizar la igualdad entre los géneros y el empoderamiento de la mujer. IOptionsSnapshot<T> Pero es un poco difícil trabajar con el sistema.. Este enfoque permite trabajar con la configuración de una manera más natural. Las limitaciones son que usted puede' no usar el IOptions<T> pattern, de modo que no se obtiene la capacidad de recargar la configuración sin reiniciar la aplicación. Sin embargo, honestamente esto es algo que casi nunca quiero hacerM SK3

El Comité recomienda al Estado Parte que adopte todas las medidas necesarias para garantizar la igualdad entre los géneros y el empoderamiento de la mujer.

En mi versión uso los últimos miembros estáticos de Interfaz para especificar que todas las instancias de esta clase deben declarar un Section property. Se usa para obtener la sección de la configuración.

public interface IConfigSection {
    public static abstract string Section { get; }
}

Así que para cada implementación usted especifica entonces qué sección esta debería estar vinculada a:

public class NewsletterConfig : IConfigSection
{
    public static string Section => "Newsletter";
    
    public string SchedulerServiceUrl { get; set; } = string.Empty;
    public string AppHostUrl { get; set; } = string.Empty;
}

En este caso ' busca una sección en la configuración llamada Newsletter.

  "Newsletter": {
      "SchedulerServiceUrl" : "http://localhost:5000",
        "AppHostUrl" : "https://localhost:7240"
    
  }

Entonces podremos vincular esto en el Program.cs El Comité recomienda que el Estado Parte adopte todas las medidas necesarias para garantizar la igualdad de oportunidades entre hombres y mujeres en materia de empleo, incluida la adopción de medidas legislativas y administrativas.


var builder = WebApplication.CreateBuilder(args);
var config = builder.Configuration;
services.ConfigurePOCO<NewsletterConfig>(config);

También podemos obtener el valor de la configuración en Program.cs El Comité recomienda que el Estado Parte adopte todas las medidas necesarias para garantizar la igualdad de oportunidades entre hombres y mujeres en materia de empleo, incluida la adopción de medidas legislativas y administrativas.

var newsletterConfig = services.ConfigurePOCO<NewsletterConfig>(config);

El Comité recomienda al Estado Parte que incluya en su próximo informe periódico información detallada sobre la situación de los derechos humanos y las libertades fundamentales de todos los trabajadores migratorios y de sus familiares. WebApplicationBuilder El Comité recomienda que el Estado Parte adopte todas las medidas necesarias para garantizar la igualdad de oportunidades entre hombres y mujeres en materia de empleo, incluida la eliminación del trabajo forzoso.

var newsletterConfig = builder.Configure<NewsletterConfig>();

Nota: Como el constructor tiene acceso al ConfigurationManager No es necesario' que esto pase en.

Esto significa que ahora tienes opciones sobre cómo unir config.

Otra ventaja es que si usted necesita utilizar estos valores más tarde en su Program.cs entonces el objeto está disponible para usted.

El Comité recomienda que el Estado Parte adopte todas las medidas necesarias para garantizar la igualdad de oportunidades entre hombres y mujeres en materia de empleo, incluida la adopción de disposiciones legislativas, administrativas y de otra índole que prohíban la discriminación racial.

Para hacer todo esto tenemos un método de extensión bastante simple que hace el trabajo de vincular la configuración a la clase.

El código de abajo permite el siguiente:

// These get the values and bind them to the class while adding these to Singleton Scope
var newsletterConfig = services.ConfigurePOCO<NewsletterConfig>(config);
var newsletterConfig = services.ConfigurePOCO<NewsletterConfig>(configuration.GetSection(NewsletterConfig.Section));
// Or for Builder...These obviously only work for ASP.NET Core applications, take them out if you are using this in a different context.
var newsletterConfig = builder.Configure<NewsletterConfig>();
var newsletterConfig = builder.Configure<NewsletterConfig>(NewsletterConfig.Section);
// These just return a dictionary, which can be useful to get all the values in a section
var newsletterConfig = builder.GetConfigSection<NewsletterConfig>();

Todo esto está habilitado por la siguiente clase de extensión.

Usted puede ver que el principal impulso de esto es usar los miembros de la interfaz estática para especificar el nombre de la sección. Esto se usa entonces para obtener la sección desde la configuración.

namespace Mostlylucid.Shared.Config;

public static class ConfigExtensions {
    public static TConfig ConfigurePOCO<TConfig>(this IServiceCollection services, IConfigurationSection configuration)
        where TConfig : class, new() {
        if (services == null) throw new ArgumentNullException(nameof(services));
        if (configuration == null) throw new ArgumentNullException(nameof(configuration));
        
        var config = new TConfig();
        configuration.Bind(config);
        services.AddSingleton(config);
        return config;
    }

    public static TConfig ConfigurePOCO<TConfig>(this IServiceCollection services, ConfigurationManager configuration)
        where TConfig : class, IConfigSection, new()
    {
        var sectionName = TConfig.Section;
        var section = configuration.GetSection(sectionName);
        return services.ConfigurePOCO<TConfig>(section);
    }
    
    public static TConfig Configure<TConfig>(this WebApplicationBuilder builder)
        where TConfig : class, IConfigSection, new() {
        var services = builder.Services;
        var configuration = builder.Configuration;
        var sectionName = TConfig.Section;
        return services.ConfigurePOCO<TConfig>(configuration.GetSection(sectionName));
    }
    

    public static TConfig GetConfig<TConfig>(this WebApplicationBuilder builder)
        where TConfig : class, IConfigSection, new() {
        var configuration = builder.Configuration;
        var sectionName = TConfig.Section;
        var section = configuration.GetSection(sectionName).Get<TConfig>();
        return section;
        
    }
    
    public static Dictionary<string, object> GetConfigSection(this IConfiguration configuration, string sectionName) {
        var section = configuration.GetSection(sectionName);
        var result = new Dictionary<string, object>();
        foreach (var child in section.GetChildren()) {
            var key = child.Key;
            var value = child.Value;
            result.Add(key, value);
        }
        
        return result;
    }
    
    public static Dictionary<string, object> GetConfigSection<TConfig>(this WebApplicationBuilder builder)
        where TConfig : class, IConfigSection, new() {
        var configuration = builder.Configuration;
        var sectionName = TConfig.Section;
        return configuration.GetConfigSection(sectionName);
    }
}

El Comité recomienda al Estado Parte que adopte todas las medidas necesarias para garantizar la igualdad entre los géneros y el empoderamiento de la mujer.

Para usar esto es bastante simple. En cualquier clase donde usted necesita esta configuración puede simplemente injetarla como así:

public class NewsletterService(NewsletterConfig config {
 
}

El Comité recomienda al Estado Parte que adopte todas las medidas necesarias para garantizar la igualdad entre los géneros y el empoderamiento de la mujer.

Pues bien, es muy simple pero es una técnica que uso en todos mis proyectos. Es una buena manera de trabajar con la configuración y creo que es un poco más natural que el IOptions<T> El Comité recomienda que el Estado Parte adopte todas las medidas necesarias para garantizar la igualdad de oportunidades entre hombres y mujeres en materia de empleo, incluida la adopción de disposiciones legislativas, administrativas y de otra índole que prohíban la discriminación racial.

Finding related posts...
logo

© 2026 Scott Galloway — Unlicense — All content and source code on this site is free to use, copy, modify, and sell.