Condivisione della tecnologia

.Net core implementa la lettura di file di configurazione personalizzati

2024-07-12

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

La lettura dei file di configurazione personalizzati è un'esigenza comune in .NET Core, soprattutto quando è standardappsettings.jsonappsettings.Development.jsonOappsettings.Production.json Quando il file di configurazione non è sufficiente a soddisfare le esigenze della tua applicazione. Ecco i passaggi su come implementare la lettura di un file di configurazione personalizzato:

1. Creare un file di configurazione personalizzato

Innanzitutto, crea un file di configurazione personalizzato nella directory root del tuo progetto o dove ritieni opportuno, ad es.mycustomsettings.json

2. Definire la classe di configurazione

Successivamente, devi definire una classe che corrisponda alla struttura del tuo file di configurazione personalizzato.ipotesimycustomsettings.jsonIl contenuto è il seguente:

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

Puoi definire una classe di configurazione come questa:

  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. dentroStartup.csConfigura e leggi la configurazione

esistere.NET CoreApplicatoStartup.csfile, è necessarioConfigureServicesMetodo per aggiungere il supporto per i file di configurazione personalizzati e aggiungerli al contenitore di inserimento delle dipendenze.

  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. Iniettare e utilizzare la configurazione nel controller o in altre classi

Ora puoi usarlo nel tuo controller o in altri servizi tramite l'inserimento delle dipendenzeMyCustomSettingsOptions.

  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. }

Definendo una classe che corrisponde alla struttura del file di configurazione e quindiStartup.csConfigura e leggi queste configurazioni e infine utilizza queste configurazioni in altre parti dell'applicazione tramite l'inserimento delle dipendenze.