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.json
、appsettings.Development.json
oderappsettings.Production.json
Wenn die Konfigurationsdatei nicht ausreicht, um Ihre Anwendungsanforderungen zu erfüllen. Hier sind die Schritte zum Implementieren des Lesens einer benutzerdefinierten Konfigurationsdatei:
Erstellen Sie zunächst eine benutzerdefinierte Konfigurationsdatei in Ihrem Projektstammverzeichnis oder an einem beliebigen Ort, z. B.mycustomsettings.json
。
Als Nächstes müssen Sie eine Klasse definieren, die der Struktur Ihrer benutzerdefinierten Konfigurationsdatei entspricht.Hypothesemycustomsettings.json
Der Inhalt ist wie folgt:
- {
- "MyCustomSettings": {
- "Key1": "Value1",
- "Key2": "Value2"
- }
- }
Sie können eine Konfigurationsklasse wie folgt definieren:
- public class MyCustomSettings
- {
- public string Key1 { get; set; }
- public string Key2 { get; set; }
- }
-
- public class MyCustomSettingsOptions
- {
- public MyCustomSettings MyCustomSettings { get; set; }
- }
Startup.cs
Konfiguration konfigurieren und lesenexistieren.NET Core
AngewandtStartup.cs
Datei, müssen SieConfigureServices
Methode zum Hinzufügen von Unterstützung für benutzerdefinierte Konfigurationsdateien und zum Hinzufügen dieser zum Abhängigkeitsinjektionscontainer.
- 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();
- // 其他配置...
- }
Jetzt können Sie es über die Abhängigkeitsinjektion in Ihrem Controller oder anderen Diensten verwendenMyCustomSettingsOptions
.
- [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}");
- }
- }
Indem Sie eine Klasse definieren, die der Struktur der Konfigurationsdatei entspricht, und dannStartup.cs
Konfigurieren und lesen Sie diese Konfigurationen und verwenden Sie diese Konfigurationen schließlich durch Abhängigkeitsinjektion in anderen Teilen der Anwendung.