Compartir tecnología

.Net core implementa la lectura de archivos de configuración personalizados

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Leer archivos de configuración personalizados es una necesidad común en .NET Core, especialmente cuando el estándarappsettings.jsonappsettings.Development.jsonoappsettings.Production.json Cuando el archivo de configuración no es suficiente para satisfacer las necesidades de su aplicación. Estos son los pasos sobre cómo implementar la lectura de un archivo de configuración personalizado:

1. Cree un archivo de configuración personalizado

Primero, cree un archivo de configuración personalizado en el directorio raíz de su proyecto o donde mejor le parezca, por ejemplo.mycustomsettings.json

2. Definir la clase de configuración.

A continuación, debe definir una clase que coincida con la estructura de su archivo de configuración personalizado.hipótesismycustomsettings.jsonEl contenido es el siguiente:

  1. {
  2. "MyCustomSettings": {
  3. "Key1": "Value1",
  4. "Key2": "Value2"
  5. }
  6. }

Puede definir una clase de configuración como esta:

  1. public class MyCustomSettings
  2. {
  3. public string Key1 { get; set; }
  4. public string Key2 { get; set; }
  5. }
  6. public class MyCustomSettingsOptions
  7. {
  8. public MyCustomSettings MyCustomSettings { get; set; }
  9. }

3 enStartup.csConfigurar y leer la configuración

existir.NET CoreAplicadoStartup.csarchivo, es necesarioConfigureServicesMétodo para agregar soporte para archivos de configuración personalizados y agregarlos al contenedor de inyección de dependencia.

  1. public void ConfigureServices(IServiceCollection services)
  2. {
  3. // 添加对自定义配置文件的支持
  4. var builder = new ConfigurationBuilder()
  5. .SetBasePath(Directory.GetCurrentDirectory())
  6. .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
  7. .AddJsonFile("mycustomsettings.json", optional: true, reloadOnChange: true); // 添加自定义配置文件
  8. IConfigurationRoot configuration = builder.Build();
  9. // 绑定配置到MyCustomSettingsOptions类
  10. services.Configure<MyCustomSettingsOptions>(configuration.GetSection("MyCustomSettings"));
  11. // 其他服务配置...
  12. services.AddControllers();
  13. // 其他配置...
  14. }

4. Inyectar y usar la configuración en el controlador u otras clases.

Ahora puedes usarlo en tu controlador u otros servicios mediante inyección de dependencia.MyCustomSettingsOptions.

  1. [ApiController]
  2. [Route("[controller]")]
  3. public class MyController : ControllerBase
  4. {
  5. private readonly MyCustomSettings _myCustomSettings;
  6. public MyController(IOptions<MyCustomSettingsOptions> options)
  7. {
  8. _myCustomSettings = options.Value.MyCustomSettings;
  9. }
  10. [HttpGet]
  11. public IActionResult Get()
  12. {
  13. // 使用_myCustomSettings...
  14. return Ok($"Key1: {_myCustomSettings.Key1}, Key2: {_myCustomSettings.Key2}");
  15. }
  16. }

Definiendo una clase que coincida con la estructura del archivo de configuración y luegoStartup.csConfigure y lea estas configuraciones y, finalmente, utilice estas configuraciones en otras partes de la aplicación mediante inyección de dependencia.