/// <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; }
// 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(); }