/// <summary>
 /// Создает новый экземпляр класса <see cref="MessageMiddlewareRegistrator"/>.
 /// </summary>
 /// <param name="messageType">Тип сообщения.</param>
 /// <param name="registrator">Реестр Middleware.</param>
 /// <param name="globalMiddlewares">Глобальные мидлварки для добавления в цепочку.</param>
 public MessageMiddlewareRegistrator(
     Type messageType,
     IMiddlewareRegistrator registrator,
     IEnumerable <MiddlewareInfo> globalMiddlewares
     )
 {
     _middlewares = new HashSet <MiddlewareInfo>(globalMiddlewares, MiddlewareInfo.MiddlewareTypeComparer);
     MessageType  = messageType;
     Registrator  = registrator;
 }
Example #2
0
        // TODO: outbox pattern

        #region Конструктор

        /// <summary>
        /// Создает экземпляр класса <see cref="RabbitMqRegistrationOptions"/>.
        /// </summary>
        /// <param name="subscriberMiddlewaresRegistrator">Реестр мидлварок подписчиков.</param>
        /// <param name="subscriberRegistrator">
        /// Регистратор реализаций подписчиков.
        /// </param>
        /// <param name="acknowledgementBehaviourRegistrator">
        /// Регистратор реализаций поведений оповещений брокера о результате обработки сообщения из шины.
        /// </param>
        /// <param name="retryDelayComputerRegistrator">
        /// Регистратор реализаций вычислителей задержек между повторными обработками.
        /// </param>
        /// <param name="routeProviderRegistrator">
        /// Регистратор кастомных провайдеров роутов.
        /// </param>
        public RabbitMqRegistrationOptions(
            IMiddlewareRegistrator subscriberMiddlewaresRegistrator,
            INamedRegistratorBuilder <string, ISubscriber> subscriberRegistrator,
            INamedRegistratorBuilder <string, IAcknowledgementBehaviour> acknowledgementBehaviourRegistrator,
            INamedRegistratorBuilder <string, IRetryDelayComputer> retryDelayComputerRegistrator,
            INamedRegistratorBuilder <string, IRouteProvider> routeProviderRegistrator
            )
        {
            SubscriberMiddlewares = subscriberMiddlewaresRegistrator;
            AcknowledgementBehaviourRegistrator = acknowledgementBehaviourRegistrator;
            RetryDelayComputerRegistrator       = retryDelayComputerRegistrator;
            RouteProviderRegistrator            = routeProviderRegistrator;
            SubscriberRegistrator = subscriberRegistrator;
            Factories             = new RabbitMqFactories();
        }