minhas informações de contato
Correspondência[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
A leitura de arquivos de configuração personalizados é uma necessidade comum no .NET Core, especialmente quando o padrãoappsettings.json
、appsettings.Development.json
ouappsettings.Production.json
Quando o arquivo de configuração não é suficiente para atender às necessidades da sua aplicação. Aqui estão as etapas sobre como implementar a leitura de um arquivo de configuração personalizado:
Primeiro, crie um arquivo de configuração personalizado no diretório raiz do seu projeto ou onde achar necessário, por exemplo.mycustomsettings.json
。
Em seguida, você precisa definir uma classe que corresponda à estrutura do seu arquivo de configuração personalizado.hipótesemycustomsettings.json
O conteúdo é o seguinte:
- {
- "MyCustomSettings": {
- "Key1": "Value1",
- "Key2": "Value2"
- }
- }
Você pode definir uma classe de configuração 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 e ler a configuraçãoexistir.NET Core
AplicadoStartup.cs
arquivo, você precisaConfigureServices
Método para adicionar suporte para arquivos de configuração personalizados e adicioná-los ao contêiner de injeção de dependência.
- 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();
- // 其他配置...
- }
Agora você pode usá-lo em seu controlador ou outros serviços via injeção de dependênciaMyCustomSettingsOptions
.
- [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}");
- }
- }
Ao definir uma classe que corresponda à estrutura do arquivo de configuração e entãoStartup.cs
Configure e leia essas configurações e, finalmente, use-as em outras partes da aplicação por meio de injeção de dependência.