Mi información de contacto
Correo[email protected]
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.json
、appsettings.Development.json
oappsettings.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:
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
。
A continuación, debe definir una clase que coincida con la estructura de su archivo de configuración personalizado.hipótesismycustomsettings.json
El contenido es el siguiente:
- {
- "MyCustomSettings": {
- "Key1": "Value1",
- "Key2": "Value2"
- }
- }
Puede definir una clase de configuración como esta:
- public class MyCustomSettings
- {
- public string Key1 { get; set; }
- public string Key2 { get; set; }
- }
-
- public class MyCustomSettingsOptions
- {
- public MyCustomSettings MyCustomSettings { get; set; }
- }
Startup.cs
Configurar y leer la configuraciónexistir.NET Core
AplicadoStartup.cs
archivo, es necesarioConfigureServices
Método para agregar soporte para archivos de configuración personalizados y agregarlos al contenedor de inyección de dependencia.
- public void ConfigureServices(IServiceCollection services)
- {
- // 添加对自定义配置文件的支持
- var builder = new ConfigurationBuilder()
- .SetBasePath(Directory.GetCurrentDirectory())
- .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
- .AddJsonFile("mycustomsettings.json", optional: true, reloadOnChange: true); // 添加自定义配置文件
-
- IConfigurationRoot configuration = builder.Build();
-
- // 绑定配置到MyCustomSettingsOptions类
- services.Configure<MyCustomSettingsOptions>(configuration.GetSection("MyCustomSettings"));
-
- // 其他服务配置...
-
- services.AddControllers();
- // 其他配置...
- }
Ahora puedes usarlo en tu controlador u otros servicios mediante inyección de dependencia.MyCustomSettingsOptions
.
- [ApiController]
- [Route("[controller]")]
- public class MyController : ControllerBase
- {
- private readonly MyCustomSettings _myCustomSettings;
-
- public MyController(IOptions<MyCustomSettingsOptions> options)
- {
- _myCustomSettings = options.Value.MyCustomSettings;
- }
-
- [HttpGet]
- public IActionResult Get()
- {
- // 使用_myCustomSettings...
- return Ok($"Key1: {_myCustomSettings.Key1}, Key2: {_myCustomSettings.Key2}");
- }
- }
Definiendo una clase que coincida con la estructura del archivo de configuración y luegoStartup.cs
Configure y lea estas configuraciones y, finalmente, utilice estas configuraciones en otras partes de la aplicación mediante inyección de dependencia.