Berbagi teknologi

Catatan: Cara menggunakan Microsoft.Extensions.Options

2024-07-12

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

Pertama, tujuannya:

Microsoft.Extensions.Options adalah perpustakaan di .NET Core untuk menangani opsi konfigurasi. Ini menyediakan cara yang sangat diketik untuk membaca dan mengikat data konfigurasi (seperti data dari file appsettings.json, variabel lingkungan, atau sumber konfigurasi lainnya) dan memasukkannya ke dalam aplikasi. Pustaka ini adalah bagian dari .NET Core, tetapi juga dapat digunakan dalam .NET Framework atau implementasi .NET lainnya.
Ide inti


• Pola opsi: Pola opsi menggunakan kelas untuk mewakili pengelompokan data konfigurasi. Kelas-kelas ini biasanya berupa POCO sederhana (Plain Old CLR Objects) yang berisi beberapa properti yang sesuai dengan kunci untuk data konfigurasi.
• Opsi I: Opsi I<T> Antarmuka digunakan untuk mengakses data konfigurasi tipe T. Setelah Anda mendaftarkan data konfigurasi tipe T, Anda dapat mengakses data ini di bagian lain aplikasi melalui injeksi ketergantungan.
• IOptionsSnapshot: IOptionsSnapshot<T> Cocok untuk skenario ketika data konfigurasi perlu dimuat ulang saat aplikasi sedang berjalan. Ini memberikan snapshot baru dari data konfigurasi pada setiap permintaan.
• IOptionsMonitor: IOptionsMonitor<T> Digunakan untuk memantau perubahan data konfigurasi secara real time. Ini memberikan peristiwa pemberitahuan perubahan yang dapat dipicu ketika data konfigurasi berubah.


2. Contoh:


Misalkan Anda memiliki file konfigurasi appsettings.json yang berisi beberapa pengaturan aplikasi:

  1. {
  2. "MySettings": {
  3. "SettingA": "value1",
  4. "SettingB": "value2"
  5. }
  6. }

Pertama, tentukan kelas untuk mewakili pengaturan berikut:

  1. public class MySettings
  2. {
  3. public string SettingA { get; set; }
  4. public string SettingB { get; set; }
  5. }

Kemudian, daftarkan kelas konfigurasi ini dalam metode ConfigureServices di Startup.cs:

 

  1. public void ConfigureServices(IServiceCollection services)
  2. {
  3. // 绑定配置
  4. services.Configure<MySettings>(Configuration.GetSection("MySettings"));
  5. // 其他服务注册...
  6. }

Sekarang Anda dapat mengakses pengaturan ini melalui injeksi ketergantungan di mana pun Anda membutuhkannya:

  1. public class MyService
  2. {
  3. private readonly MySettings _mySettings;
  4. public MyService(IOptions<MySettings> options)
  5. {
  6. _mySettings = options.Value;
  7. }
  8. public void DoSomething()
  9. {
  10. Console.WriteLine(_mySettings.SettingA);
  11. // 使用 _mySettings...
  12. }
  13. }

Microsoft.Extensions.Options menyediakan cara sederhana namun ampuh untuk mengelola dan mengakses data konfigurasi aplikasi. Dengan menggunakan kelas konfigurasi yang sangat diketik dan injeksi ketergantungan, Anda dapat dengan mudah mengintegrasikan data konfigurasi ke dalam aplikasi Anda sambil menjaga kode Anda tetap jelas dan mudah dikelola.

5. Poin pengetahuan yang perlu Anda ketahui

Opsi I 

Snapshot Opsi I 

Monitor Opsi I 

Ruang nama Microsoft.Extensions.Options | 

Ruang nama Sistem.Windows.Kontrol |. Microsoft Learn

6. Alamat kode sumber

GitHub - HeBianGu/WPF-ControlDemo: Contoh

GitHub - HeBianGu/WPF-ControlBase: Pustaka sumber daya kontrol khusus yang dienkapsulasi Wpf

GitHub - HeBianGu/WPF-Control: Kontrol ringan WPF dan pustaka skinning

7. Pelajari lebih lanjut

Ruang nama Sistem.Windows.Kontrol |. Microsoft Learn

https://github.com/HeBianGu

Ruang pribadi HeBianGu-beranda pribadi HeBianGu-Video Bilibili