Berbagi teknologi

.Net core mengimplementasikan pembacaan file konfigurasi khusus

2024-07-12

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

Membaca file konfigurasi khusus adalah kebutuhan umum di .NET Core, terutama jika standarappsettings.jsonappsettings.Development.jsonatauappsettings.Production.json Ketika file konfigurasi tidak cukup untuk memenuhi kebutuhan aplikasi Anda. Berikut adalah langkah-langkah tentang cara mengimplementasikan pembacaan file konfigurasi khusus:

1. Buat file konfigurasi khusus

Pertama, buat file konfigurasi khusus di direktori root proyek Anda atau di mana pun Anda mau, misalnya.mycustomsettings.json

2. Tentukan kelas konfigurasi

Selanjutnya, Anda perlu menentukan kelas yang cocok dengan struktur file konfigurasi khusus Anda.hipotesamycustomsettings.jsonIsinya adalah sebagai berikut:

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

Anda dapat mendefinisikan kelas konfigurasi seperti ini:

  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. masukStartup.csKonfigurasikan dan baca konfigurasi

ada.NET CoreTerapanStartup.csfile, Anda perlu melakukannyaConfigureServicesMetode untuk menambahkan dukungan untuk file konfigurasi khusus dan menambahkannya ke wadah injeksi ketergantungan.

  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. Menyuntikkan dan menggunakan konfigurasi di pengontrol atau kelas lain

Sekarang Anda dapat menggunakannya di pengontrol Anda atau layanan lain melalui injeksi ketergantunganMyCustomSettingsOptions.

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

Dengan mendefinisikan kelas yang cocok dengan struktur file konfigurasi dan kemudianStartup.csKonfigurasikan dan baca konfigurasi ini, dan terakhir gunakan konfigurasi ini di bagian lain aplikasi melalui injeksi ketergantungan.