技術共有

.Netコアはカスタム構成ファイルの読み取りを実装します

2024-07-12

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

カスタム構成ファイルの読み取りは、.NET Core の一般的なニーズです (特に標準の構成ファイルの場合)。appsettings.jsonappsettings.Development.jsonまたはappsettings.Production.json構成ファイルだけではアプリケーションのニーズを満たすのに十分ではない場合。カスタム構成ファイルの読み取りを実装する手順は次のとおりです。

1. カスタム構成ファイルを作成する

まず、プロジェクトのルート ディレクトリまたは適切と思われる場所にカスタム構成ファイルを作成します。mycustomsettings.json

2. 構成クラスを定義する

次に、カスタム構成ファイルの構造に一致するクラスを定義する必要があります。仮説mycustomsettings.json内容は以下の通りです。

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

次のように構成クラスを定義できます。

  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.でStartup.cs設定と設定の読み取り

存在する.NET Core適用済みStartup.csファイル、あなたはする必要がありますConfigureServicesカスタム構成ファイルのサポートを追加し、それらを依存関係注入コンテナーに追加するメソッド。

  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. コントローラーまたは他のクラスに構成を挿入して使用する

これで、依存関係注入を介してコントローラーまたは他のサービスで使用できるようになりました。MyCustomSettingsOptions

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

設定ファイルの構造に一致するクラスを定義し、Startup.csこれらの構成を構成して読み取り、最終的に依存関係注入を通じてアプリケーションの他の部分でこれらの構成を使用します。