Partage de technologie

Le noyau .Net implémente la lecture des fichiers de configuration personnalisés

2024-07-12

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

La lecture de fichiers de configuration personnalisés est un besoin courant dans .NET Core, en particulier lorsque la normeappsettings.jsonappsettings.Development.jsonouappsettings.Production.json Lorsque le fichier de configuration n'est pas suffisant pour répondre aux besoins de votre application. Voici les étapes à suivre pour mettre en œuvre la lecture d'un fichier de configuration personnalisé :

1. Créez un fichier de configuration personnalisé

Tout d'abord, créez un fichier de configuration personnalisé dans le répertoire racine de votre projet ou partout où bon vous semble, par ex.mycustomsettings.json

2. Définir la classe de configuration

Ensuite, vous devez définir une classe qui correspond à la structure de votre fichier de configuration personnalisé.hypothèsemycustomsettings.jsonLe contenu est le suivant :

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

Vous pouvez définir une classe de configuration comme celle-ci :

  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. dansStartup.csConfigurer et lire la configuration

exister.NET CoreAppliquéStartup.csfichier, vous devezConfigureServicesMéthode pour ajouter la prise en charge des fichiers de configuration personnalisés et les ajouter au conteneur d'injection de dépendances.

  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. Injecter et utiliser la configuration dans le contrôleur ou d'autres classes

Vous pouvez désormais l'utiliser dans votre contrôleur ou dans d'autres services via l'injection de dépendancesMyCustomSettingsOptions.

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

En définissant une classe qui correspond à la structure du fichier de configuration, puisStartup.csConfigurez et lisez ces configurations, et enfin utilisez ces configurations dans d'autres parties de l'application via l'injection de dépendances.