Compartir tecnología

Notas: Cómo utilizar Microsoft.Extensions.Options

2024-07-12

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

Primero, el propósito:

Microsoft.Extensions.Options es una biblioteca en .NET Core para manejar opciones de configuración. Proporciona una forma fuertemente tipada de leer y vincular datos de configuración (como datos de archivos appsettings.json, variables de entorno u otras fuentes de configuración) e inyectarlos en la aplicación. Esta biblioteca es parte de .NET Core, pero también se puede usar en .NET Framework u otras implementaciones de .NET.
Idea principal


• Patrón de opciones: el patrón de opciones utiliza clases para representar agrupaciones de datos de configuración. Estas clases suelen ser POCO (objetos CLR antiguos y simples) simples que contienen algunas propiedades que corresponden a claves para los datos de configuración.
• Opciones I: Opciones I<T> La interfaz se utiliza para acceder a datos de configuración de tipo T. Después de registrar datos de configuración de tipo T, puede acceder a estos datos en otras partes de la aplicación mediante la inyección de dependencia.
• Instantánea de IOptions: Instantánea de IOptions<T> Adecuado para escenarios en los que es necesario recargar los datos de configuración mientras se ejecuta la aplicación. Proporciona una nueva instantánea de los datos de configuración en cada solicitud.
• IOptionsMonitor: IOptionsMonitor<T> Se utiliza para monitorear cambios en los datos de configuración en tiempo real. Proporciona un evento de notificación de cambio que se puede activar cuando cambian los datos de configuración.


2. Ejemplo:


Suponga que tiene un archivo de configuración appsettings.json que contiene algunas configuraciones de la aplicación:

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

Primero, defina una clase para representar estas configuraciones:

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

Luego, registre esta clase de configuración en el método ConfigureServices de Startup.cs:

 

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

Ahora puedes acceder a estas configuraciones mediante la inyección de dependencias donde las necesites:

  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 proporciona una forma sencilla pero potente de administrar y acceder a los datos de configuración de una aplicación. Al utilizar clases de configuración fuertemente tipadas e inyección de dependencia, puede integrar fácilmente datos de configuración en su aplicación mientras mantiene su código claro y fácil de mantener.

5. Puntos de conocimiento que necesitas saber

IOpciones 

Instantánea de IOptions 

Monitor de opciones I 

Espacio de nombres Microsoft.Extensions.Options Microsoft Learn 

Espacio de nombres System.Windows.Controls Microsoft Learn

6. Dirección del código fuente

GitHub - HeBianGu/WPF-ControlDemo: Ejemplo

GitHub - HeBianGu/WPF-ControlBase: biblioteca de recursos de control personalizado encapsulada en Wpf

GitHub - HeBianGu/WPF-Control: biblioteca de aspectos y controles ligeros de WPF

7. Más información

Espacio de nombres System.Windows.Controls Microsoft Learn

https://github.com/HeBianGu

Espacio personal de HeBianGu-Página de inicio personal de HeBianGu-Bilibili Video