Options
El patrón de opciones es una técnica común en aplicaciones .NET que permite centralizar la configuración en un solo lugar, facilitando la gestión y validación de las opciones de configuración. En CodeDesignPlus.Net.EventStore.PubSub
, utilizamos este patrón para ofrecer opciones de configuración estructuradas y fácilmente accesibles.
EventStorePubSubOptions
La clase EventStorePubSubOptions
está diseñada para representar las opciones de configuración para el sistema de publicación/suscripción de EventStore. Esta clase hereda de la clase base PubSubOptions
, lo que significa que adquiere todas las propiedades de PubSubOptions
además de sus propias propiedades específicas.
namespace CodeDesignPlus.Net.EventStore.PubSub.Abstractions.Options;
/// <summary>/// Represents the configuration options for EventStore Pub/Sub./// </summary>public class EventStorePubSubOptions : PubSubOptions{ /// <summary> /// The configuration section name for EventStore Pub/Sub options. /// </summary> public static new readonly string Section = "EventStorePubSub";
/// <summary> /// Gets or sets a value indicating whether EventStore Pub/Sub is enabled. /// </summary> public bool Enabled { get; set; }}
Propiedades
-
Section
: Es una propiedad estática y de sólo lectura que define el nombre de la sección de configuración específica para EventStore Pub/Sub en los archivos de configuración (e.g., appsettings.json). -
Enabled
: Es una propiedad booleana que indica si EventStore Pub/Sub está habilitado o no. -
Group
: Es una propiedad que representa el nombre del grupo para la suscripción de EventStore Pub/Sub. Esta propiedad es obligatoria, como se indica con el atributo[Required]
. -
UseQueue
: Es una propiedad booleana que indica si se debe usar una queue en memoria para la publicación de eventos. Por defecto está habilitada (true). -
SecondsWaitQueue
: Es una propiedad que define el número de segundos a esperar para la queue cuando se encuentra vacia. Debe estar en el rango de 1 a 10, con un valor por defecto de 2. -
EnableDiagnostic
: Es una propiedad booleana que indica si los diagnósticos están habilitados. Por defecto está deshabilitada (false). -
RegisterAutomaticHandlers
: Es una propiedad booleana que indica si se deben registrar event handlers automáticos. Por defecto está habilitada (true).
Ejemplo de configuración
A continuación se muestra un ejemplo de configuración de EventStore Pub/Sub en un archivo appsettings.json
:
{ "EventStorePubSub": { "Enabled": true, "Group": "my-group", "UseQueue": true, "SecondsWaitQueue": 2, "EnableDiagnostic": false, "RegisterAutomaticHandlers": true }}