Обмен технологиями

Примечания. Как использовать Microsoft.Extensions.Options.

2024-07-12

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

Во-первых, цель:

Microsoft.Extensions.Options — это библиотека в .NET Core для обработки параметров конфигурации. Он обеспечивает строго типизированный способ чтения и привязки данных конфигурации (например, данных из файла appsettings.json, переменных среды или других источников конфигурации) и внедрения их в приложение. Эта библиотека является частью .NET Core, но ее также можно использовать в .NET Framework или других реализациях .NET.
Основная идея


• Шаблон параметров: шаблон параметров использует классы для представления групп данных конфигурации. Эти классы обычно представляют собой простые POCO (обычные старые объекты CLR), содержащие несколько свойств, которые соответствуют ключам для данных конфигурации.
• IOptions: IOptions<T> Интерфейс используется для доступа к данным конфигурации типа T. После регистрации данных конфигурации типа T вы можете получить доступ к этим данным в других частях приложения посредством внедрения зависимостей.
• IOptionsSnapshot: IOptionsSnapshot.<T> Подходит для сценариев, когда данные конфигурации необходимо перезагрузить во время работы приложения. Он предоставляет новый снимок данных конфигурации при каждом запросе.
• IOptionsMonitor: IOptionsMonitor<T> Используется для мониторинга изменений данных конфигурации в режиме реального времени. Он обеспечивает событие уведомления об изменении, которое может быть вызвано при изменении данных конфигурации.


2. Пример:


Предположим, у вас есть файл конфигурации appsettings.json, содержащий некоторые настройки приложения:

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

Сначала определите класс для представления этих настроек:

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

Затем зарегистрируйте этот класс конфигурации в методе ConfigurationServices файла Startup.cs:

 

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

Теперь вы можете получить доступ к этим настройкам через внедрение зависимостей, где это необходимо:

  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 предоставляет простой, но мощный способ управления данными конфигурации приложения и доступа к ним. Используя строго типизированные классы конфигурации и внедрение зависимостей, вы можете легко интегрировать данные конфигурации в свое приложение, сохраняя при этом ясность и удобство обслуживания вашего кода.

5. Знания, которые вам нужно знать

IОпции 

IOptionsСнимок 

IOptionsMonitor 

Пространство имен Microsoft.Extensions.Options Microsoft Learn 

Пространство имен System.Windows.Controls Microsoft Learn |

6. Адрес исходного кода

GitHub — HeBianGu/WPF-ControlDemo: пример

GitHub — HeBianGu/WPF-ControlBase: инкапсулированная в Wpf библиотека ресурсов пользовательского элемента управления.

GitHub — HeBianGu/WPF-Control: облегченная библиотека управления и оформления оформления WPF

7. Узнать больше

Пространство имен System.Windows.Controls Microsoft Learn |

https://github.com/HeBianGu

Личное пространство HeBianGu-Личная домашняя страница HeBianGu-Bilibili Video