Technologieaustausch

.Net Core implementiert das Lesen benutzerdefinierter Konfigurationsdateien

2024-07-12

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

Das Lesen benutzerdefinierter Konfigurationsdateien ist in .NET Core ein häufiger Bedarf, insbesondere wenn der Standardappsettings.jsonappsettings.Development.jsonoderappsettings.Production.json Wenn die Konfigurationsdatei nicht ausreicht, um Ihre Anwendungsanforderungen zu erfüllen. Hier sind die Schritte zum Implementieren des Lesens einer benutzerdefinierten Konfigurationsdatei:

1. Erstellen Sie eine benutzerdefinierte Konfigurationsdatei

Erstellen Sie zunächst eine benutzerdefinierte Konfigurationsdatei in Ihrem Projektstammverzeichnis oder an einem beliebigen Ort, z. B.mycustomsettings.json

2. Definieren Sie die Konfigurationsklasse

Als Nächstes müssen Sie eine Klasse definieren, die der Struktur Ihrer benutzerdefinierten Konfigurationsdatei entspricht.Hypothesemycustomsettings.jsonDer Inhalt ist wie folgt:

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

Sie können eine Konfigurationsklasse wie folgt definieren:

  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. inStartup.csKonfiguration konfigurieren und lesen

existieren.NET CoreAngewandtStartup.csDatei, müssen SieConfigureServicesMethode zum Hinzufügen von Unterstützung für benutzerdefinierte Konfigurationsdateien und zum Hinzufügen dieser zum Abhängigkeitsinjektionscontainer.

  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. Fügen Sie die Konfiguration in Controller oder andere Klassen ein und verwenden Sie sie

Jetzt können Sie es über die Abhängigkeitsinjektion in Ihrem Controller oder anderen Diensten verwendenMyCustomSettingsOptions.

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

Indem Sie eine Klasse definieren, die der Struktur der Konfigurationsdatei entspricht, und dannStartup.csKonfigurieren und lesen Sie diese Konfigurationen und verwenden Sie diese Konfigurationen schließlich durch Abhängigkeitsinjektion in anderen Teilen der Anwendung.